본문 바로가기
  • 저희는 평생 개발할 운명이걸랑요
Tech.log/운영체제

[시스템 구조와 프로그램의 실행]

by SpaciousKitchen 2021. 4. 28.

컴퓨터 시스템 구조 

 

 interrupt: 인터럽트 당한 시점의 레지스터와 program counter을 저장한후 , CPU의 제어를 인터럽트 처리 후로 넘긴다.

  • 넓은 의미의 인터럽트:하드웨어가 발생시킨 인터럽트
  • 소프트웨어의 인터럽트: 프로그램 오류, 프로그램이 커널 함수 호출(System call)등에 의한 이터럽트

 

메모리 :CPU의 작업 공간, 매 순간 기계어를 읽는다.

 

I/O device controller: 해당 I/O장치 유형을 관리하는 일종의 작은 CPU이다. 

  • 제어 정보를 위해 contorl register, status  register을 가진다.
  • I/O동작이 끝났을때 interrupt로 CPU에 알린다.

 

 

CPU:메모리에 쌓인 instructs를 읽고 실행한다.만일 Controller나 timer 통해 insterrupt가오기전까지 계속 수행한다.

 

- registers:메모리 보다 빠른 CPU내에 메모리

- mode bits:CPU가  운영체제인지 사용자 프로그램 실행 중인지 구분 

  • Mode bits은 0(사용자 프로그램)과 1(OS코드)로 구분, 보안을 해칠 수 있는 중요한 명령어는 모니터 모드에서 수행가능
  • interrupt나 Exceotion 발생시 하드웨어가 mode bit를 0으로 바꿈, 사용자 프로그램에게 CPU를 넘길시는 1로 바꿈

- interrupt line :메모리에 있는 insterrupt이외에  I/O 장치와의 일을 진행한다.

 

-timer. : 정해진 시간이 흐른 뒤 운영체제에게 제어권을 넘어가도록 ,instructs실행한다.

 

- DNA controller :CPU외에도 메모리를 접근할 수 있음. I/O의 작업을 메모리로 복사한다. CPU의 interttupt가 덜 되도록한다.  

 

 

*운영 체제는 이런 CPU의 전체적인 일을 통제한다. 운영체제는 CPU로 부터의 제어권이 넘어오지 않은 이상 계속 사용자 프로그램이 쓰고 있다.

 

사용자 프로그램은 어떻게 I/O를 하는가 ?

- 시스템 콜(system call) : 사용자 프로그램은 CPU가 아닌 운영체제에게 I/O를 요청한다. 커널 함수를 호출한다.

'Tech.log > 운영체제' 카테고리의 다른 글

[Thread-safe]  (0) 2021.05.22
[프로세스와 스레드의 차이]  (0) 2021.05.19
[시스템 구조와 프로그램의 실행_2]  (0) 2021.04.29
[운영체제란 ?]  (0) 2021.04.28

댓글