제어 프로그램 (Control Program)
처리 프로그램 (Processing Program)
정의
: 컴퓨터 내부로 정보를 읽어 오거나 외부 기억장치로부터 정보들을 주기억장치 내에 적재하는 프로그램. 어떤 정보가 기억장치의 어느 부분에 적재되어 있는지 추척하기도 함.
기능
종류 : 절대 로더, 상대(재배치) 로더
버퍼링 : 한 작업의 계산과 함께 입출력을 동시에 수행. CPU와 입출력장치는 동시에 동작, 양쪽의 속도가 비슷하면 버퍼 이용이 효율적. 보통 CPU가 더 빠르므로 실행속도는 입출력장치 속도에 의해 제한. 주기억장치에 위치. 스택/큐 방식으로 입출력 수행
스풀링 : 디스크의 일부를 스풀 공간이라고 부르는 매우 큰 버퍼처럼 사용하는 방식. 입출력장치와 CPU 속도 차이 해소를 위해 사용. 디스크에 위치. 큐 방식으로 입출력 수행.
정의
: CPU에 의해 수행되는 시스템 및 사용자 프로그램. 프로그램 + 입출력 상태 형태
스케쥴러
프로세스가 전이되는 시기와 이유
프로세스 제어 블록 (PCB)
정의
: 프로세스의 실행 부분 담당. 실행의 기본 단위
각각의 스레드는 독립적인 제어흐름을 갖고 자신만의 스택, 레지스터를 갖음
프로세스와 마찬가지로 스레드들도 중앙처리장치 공유
준비, 블록, 수행, 종료 등 여러 상태 중 하나로 있을 수 있음
하나의 프로세스 내 여러 스레드 존재 가능.
구조
다중 스레드의 장점
장점
단점
선점 스케줄링 : 한 프로세스가 CPU를 차지하고 있을 때 다른 프로세스가 현재 프로세스를 중지시키고 자신이 CPU를 차지할 수 있다.
RR, SRT(Shortest-Remain-Time), MLQ(MultiLevel Queue), MFQ(Multilevel Feedback Queue), 우선순위 스케줄링 등이 있다
비선점 스케줄링 : 한 프로세스가 CPU를 할당받으면 CPU는 그 프로세스로부터 빠져나올 수 없다. FIFO, SJF(Shortest-Job-First), HRN(Highest Response Time), 우선순위 스케줄링 등이 있다
정의
: 하나의 프로세스가 수정 가능한 공유 자원을 액세스하고 있을 때, 그 프로세스에 의해 참조되는 프로그램의 부분.
하나의 프로세스가 공유 데이터를 접근하면 다른 프로세스는 그 공유 데이터를 접근해서는 안됨 (무결성 보장)
임계 영역을 수행 중에 있는 프로세스는 인터럽트, 교착상태, 무한반복이 발생하면 X
코드 지역(영역)
요구 조건
동기화(상호배제) 기법
정의
: 다중 프로그래밍 시스템에서 아무리 기다려도 결코 일어나지 않을 사건을 기다리고 있는 하나 또는 그 이상의 프로세들이 있는 상태
교착상태의 4가지 필요조건
교착상태의 해결 기법
주기억장치 (Main Memory)
: CPU가 명령이나 자료를 직접 인출, 반환할 수 있는 장치. CPU가 보조기억장치에 있는 프로그램이나 데이터를 참조하기 위해선느 먼저 주기억장치로 옮겨와야 함
가상기억장치 (Virtual Memory)
: 주기억장치의 이용 가능한 기억 공간보다 훨씬 큰 주소 지정을 할 수 있게 해줌. 디스크를 주기억장치의 확장된 공간으로 이용. 주기억장치의 용량에 제한받지 않고 보조기억장치의 용량에 해당하는 커다란 기억 장소를 갖고 있는 것처럼 프로그램 작성 가능
단일 사용자 시스템
다중 프로그래밍 시스템
고정(정적) 분할 기억 장치
: 주기억장치 사요자 영역을 여러 개의 고정된 크기로 분할하여 관리
가변(동적) 분할 기억장치
구현 방법에 따라
사상표 색인을 찾는 방법에 따라
직접 사상 방법 : 페이지 사상표는 주기억장치에 있음
연관 사상 방법 : 빠른 주소 변환을 위해 고속의 연관기억장치를 이용하여 페이지 사상표 전체를 넣는 방법. 가장 빠르고 융통성 있는 사상 구조
직접/연관 사상 혼용 방법
블록 사상