소프트웨어 개발

개발책 - 혼자 공부하는 컴퓨터구조+운영체제 (11-14장)

인어공쭈 2024. 2. 17. 14:06

C 11. CPU 스케줄링

cpu스케줄링은 공정하고 합리적으로 cpu 자원을 배분하는 방법이다.

프로세스는 우선순위를 갖고 있고 이는 PCB 에 명시된다. 우선순위가 높은 프로세스는 대표적으로 입출력 작업이 많은 프로세스이다. 그런데 프로세스 종류마다 입출력 장치를 이용하는 시간과 양에는 차이가 있다.

입출력 집중 프로세스 :비디오 재생이나 디스크 백업 작업을 담당하는 입출력 작업이 많음 
CPU 집중 프로세스 : 복잡한 연산, 그래픽 처리작업을 담당하는 cpu 작업이 많은 프로세스

 

운영체제는 효율적인 스케줄링을 위해 스케줄링 큐를 사용한다.

대표적인 큐로 준비큐와 대기큐가 있다.

준비큐: cpu할당을 기다리는 프로세스를 위한 큐
대기큐: 입출력장치를 기다리는 프로세스들을 위한 큐
선점형 스케줄링: 프로세스가 이용중인 자원을 빼앗을수 있음
비섬점형 스케줄링: // 자원을 뺴앗을수 없음

 

 

C 11-2. CPU 스케줄링 알고리즘

알고리즘

선입 선처리 스케줄링(FCFS): 준비 큐에 삽입된 순서대로 cpu 할당, 하지만 대기시간 발생(호위효과)
최단 작업 우선 스케줄링(SJF): 준비 큐에 삽입된 프로세스들 중 cpu 사용 시간의 길이가 가장 짧은 프로세스부터 cpu할당
라운드 로빈 스케줄링: 정해진 시간만큼만 돌아가면 할당
최소 잔여 시간 우선 스케줄링 (SRT) : 최단과 라운드로빈을 합친 방식
우선순위 스케줄링: 가장 높은 우선순위에 할당
다단계 피드백 큐 스케줄링: 프로세스들이 큐 사이를 이동할수 있는 다단계 큐 스케줄링

 

 

C 12. 프로세스 동기화

프로세스를 올바르게 수행하기 위해 서로 협력하면 영향을 받기 위해선 동기화가 되야된다.

동기화는 특정 자원에 접근할때 한개의 프로세스만 접근하거나 프로세스를 올바른 순서대로 실행하게 하는것을 의미한다.

실행 순서 제어를 위한 동기화: 올바른 순서대로 실행하는 것
상호 배제를 위한 동기화: 공유가 불가능한 자원의 동시 사용을 피하기 위해 사용
공유자원: 공동으로 사용하는 자원
임계 구역: 공유자원에 접근하는 중 동시에 실행하면 문제가 발생하는 영역을 의미
상호배제: 한 프로세스가 임계 구역에서 작업중이면 다른 프로세스가 임계구역에 들어갈수 없도록 제어하는것

 

C 12-2. 동기화 기법

 

프로세스의 동기화는 어떻게 이뤄질까? 동기화를 위한 대표적인 도구에 대해서 알아보자

뮤테스락: 임계 구역을 잠금으로써 프로세스 간의 상호배제를 이룬다
세마포: 공유자원이 여러개 있는 임계 구역문제도 해결할수 있는 동기화 도구
모니터: 세마포에 비해 사용자가 사용하기 편리한 동기화 도구로 조건 변수를 사용

 

C 13 교착 상태

 

프로세스가 각자 가지고 있는 자원을 무작정 기다린다면 그 어떤 프로세스도 더이상 진행할수 없는 교착상태가 된다.

교착 상태 예방: 교착 상태의 발생 조건 중 하나를 충족하지 못하게 하는 방법
교착 상태 회피: 안전 상태를 유지할수 있는 경우에만 자원을 할당하는 방법
교착 상태 검출 후 회복: 교착 상태 발생 여부를 주기적으로 검사, 교착 상태가 발생하면 그때 그때 회복하는 방법

 

C 14 가상 메모리

 

연속적인 프로세스 할당할때 무엇을 고려해야될까? 

스와핑: 메모리에서 사용되지 않는 일부 프로새스를 보조기억장치로 내보내고 실행할 프로세스 메모리를 들여보내는 메모리 관리 기법
최초적합: 최초로 발견한 적재 가능한 빈공간에 프로세스를 배치하는 방식
최적적합: 가장 적은 공간에 프로세스 배치 방식
최악적합: 프로세스가 적재될수 있는 가장 큰 고간에 배치하는 방식
외부 단편화: 프로세스를 할당하기 어려울 만큼 작은 메모리 공간들로 인해 메모리가 낭비되는 현상

 

C 14-2 페이징을 통한 가상 메모리 관리

 

페이징: 물리 주소 공간을 프레임 단위로 자르고 프로세스의 논리 주소 공간을 페이지 단위로 자른뒤 각 페이지를 프레임에 할당하는 가상 메모리 관기기법
페이지 테이블: 페이지가 적재된 프레임을 찾을수 있다. 여기서 페이지 번호와 프레임번호뿐만 아니라 유효비트, 보호비트,접근비트, 수정비트등이 있다.
PTBR: 각 프로세스의 페이지 테이블이 적재된 주소를 가리킨다.
TLB: 페이지 테이블의 캐시 메모리 역할을 수행하기 위해 페이지 테이블의 일부를 저장

 

 

C 14-3 페이지 교체와 프레임 할당

요구 페이징: 페이지가 필요할때에만 메모리에 적재하는 기법
페이지 교체 알고리즘: FIFO, 최적, LRU 페이지 교체 알고리즘 등이 있다
스래싱: 지나치게 빈번한 페이지 교체로 인해 cpu 이용률이 낮아지는 문제를 뜻함
프레임 할당: 방식에는 균등 할당과 비례 할당, 작업 집합모델 기반과 페이지 폴트율 기반 프레임 할당 방식 

 

 

 

반응형