운영체제(Operating System,OS) - part3

김종하·2021년 1월 18일
0
post-thumbnail

CPU 와 Interrupt

CPU 는 PC(Program counter)레지스터가 가리키고 있는 메모리 주소의 인스트럭션을 읽어와 수행하고 PC레지스터는 다음 주소를 가리키게 된다.
단, 인스트럭션을 수행하고 나면 Interrupt line 에 인스트럭션이 있는지 확인하고 만약 있다면 CPU 제어권은 운영체제로 넘어간다.

운영체제에는 특정 인터럽트를 처리하는 커널 함수가 정의되어 있고,
인터럽트와 해당 인터럽트를 처리할 함수의 주소를 쌍으로 갖는 인터럽트 벡터가 있다.
예를들어 A인터럽트가 발생하면 B함수를 실행해야된다고 정의되어 있고,
A인터럽트 발생시 인터럽트 벡터에서 해당 인터럽트 발생시 수행될 B함수의 주소를 찾아 B함수를 수행하게 된다.

인터럽트는 하드웨어 인터럽트와 Trap 이라 불리는 소프트웨어 인터럽트가 있다.
Trap 에는 Exception 과 System Call 이 있다

동기식 입출력과 비동기식 입출력

동기식 입출력 (Synchronous I/O)

I/O 요청 후 입출력 작업이 완료된 후에 제어가 사용자 프로그램으로 넘어가는 방식이다.
동기식 입출력을 하는 경우 특정 프로그램이 I/O 작업을 하는동안 CPU가 낭비되는 상황이 발생할 수 있다. 이 경우 한 프로그램이 CPU를 사용하지 않으면서도 점유하고 있어 연쇄적으로 다른 프로그램에서 I/O 작업이 예정돼 있어도 진행할 수 없다. 즉 매시점 하나의 I/O만 일어날 수 있다는 것이다. 그래서 I/O 처리가 완료될 때까지 해당 프로그램에서 CPU제어를 가져와 다른 프로그램에게 CPU제어를 넘기는 방식도 있다.

비동기식 입출력 (Asynchronous I/O)

I/O가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어가는 방식이다.

DMA(Direct Memory Access)

CPU의 중재 없이 Device Controller 가 device 의 buffer storage 내용을 메모리에 block 단위로 직접 전송
CPU에 과도한 인터럽트를 방지

저장장치 계층구조

위로 갈수록 속도가 빠르고 가격이 비싸다. 연두색 부분은 휘발성 매체 (컴퓨터 종료시 데이터 휘발) 분홍색 부분은 비휘발성 매체

프로그램의 실행


일반적으로 프로그램은 파일시스템에 실행파일 형태로 저장되어있다.
실행파일을 실행시키면 메모리로 올라가 프로세스가 된다.
각 프로그램이 실행될 때, 가상의(실제 연속된 구조가아님) 독자적인 주소공간 (stack, data, code 로이루어진) 이 메모리에 올라가게 되는 것인데, 이 때 주소공간 전부가 메모리에 올라가게 되면 메모리 낭비가 됨으로 실행되는 부분만 올려둔다. 그리고 나머지 부분은 Swap area에 올려두고 필요시에 메인메모리에 올라가있는 주소공간과 교체하게되는데 이를 통해 부족한 메인메모리 용량을 보완한다


이 포스팅은 KOCW가 제공하는 반효경님의 운영체제 수업을 참고하였습니다.
사용된 모든 이미지 자료는 해당강의의 일부입니다.

0개의 댓글