CS 공부/운영체제

CS 스터디 - OS 정리 1

프로세서 (=CPU)

제어장치, 연산장치, 레지스터 그리고 데이터 버스로 구성된 디지털 시스템의 핵심 부분으로,프로그램을 기억장치로부터 읽어 연산 처리, 비교 처리, 데이터 전송, 편집, 변환, 테스트와 분기 등의 데이터를 처리하고,

각종 장치를 구동하는 역할을 한다.

 

프로세서 레지스터

프로세서의 내부에 있으며, 프로레서가 사용할 데이터를 보관하는 가장 빠른 메모리이다. 

 

레지스터 종류

  • User Visible Register : 사용자가 운영체제와 프로그램을 이용하여 정보를 변경할 수 있는 레지스터로 접근이 가능한 데이터와 주소, 일부 조건 코드를 보관한다 ex)데이터 레지스터, 주소 레지스터
  • Control and Status Register : 연산을 위해 사용하거나 연산 결과의 상태를 알려주는 값들이 모인 레지스터. PC, IR, PSW 등이 포함되어있다.

Cf) 프로세스 & 프로세서

프로세서는 한순간에 하나의 프로세스만 실행할 수 있으나, 교체가 순식간에 이루어져서 여러개가 실행되는 것 처럼 보인다. 

 

명령어 실행(Instruction Execution)

두 단계를 거친다.

1. fetch : 메모리로부터 명령어를 가지고 온다.

2. execute : 각 명령어를 실행한다.

 

프로세서는 메모리로부터 명령어를 가지고 온 뒤(fetch), PC가 다음 fetch될 명령어 주소를 가지게 된다. 

PC는 fetch 후 1 증가되게 된다.

 

Instruction Register

fetch된 명령어는 명령어 레지스터안에 위치한다.

프로세서 메모리, IO, Data, Control 등이 저장됨.

Interrupt & Interrupt handler

대부분의 입출력장치가 프로세서보다 느리기 때문에 프로세서는 장치를 기다리기 위해 정지해야 한다.

 

Interrupt Handler

입출력장치를 처리하기 위한 특정 프로그램으로서, 운영체제의 일부분이다.

프로그램 실행중 인터럽트가 발생하면 핸들러로 이동해 처리하며, 이후 다시 발생된 지점으로 돌아간다. 

수행중 다른 인터럽트가 발생할 경우, 무시하거나 우선순위를 결정할 수도 있다

 

Multiprogramming

인터럽트를 사용하더라도 효과적으로 사용되지 않을때, 멀티프로그래밍이 활용된다.

프로세서가 입출력 작업의 종료를 대기할 동안 하나의 프로세서에서 다른 프로그램을 수행할 수 있도록 하며, 최대한 활용해서 연산을 진행하도록 하므로 멀티프로그래밍이라고 한다.