후기/대학원 입시

[대학원 면접준비] CS - 운영체제

ruming 2024. 10. 25. 22:16

운영체제 : 하드웨어와 사용자의 가교 역할. 사용자 인터페이스와 자원 관리를 위한 프로그램의 집합.

 

인터럽트

- CPU의 현재 처리 순서를 중단하고 다른 동작 수행을 요구함

- 외부/내부/소프트웨어 인터럽트 존재

[처리과정]

1. 인터럽트 요청 발생

2. 프로그램 수행 중단

3. 레지스터, PC 등을 스택에 저장

4. 인터럽트 처리

5. 프로그램 재개

 

 

프로세스

- 수행 중인 프로그램, 자원의 소유자.

*프로세스들이 CPU를 할당받는 순서를 CPU 스케줄링이라 함.

 

스레드

- CPU를 받는 단위

 

프로세스 상태

- ready, run, wait, block

 

Critical Section (임계구역)

- 둘 이상의 스레드가 동시에 접근하면 안 되는 공유 자원

 

Deadlock(교착상태)

- 두 개 이상의 프로세스가 서로 상대방이 사용 중인 자원을 쓰기 위해 무한 대기하는 상태

 

[Deadlock의 4가지 조건]

1. Mutual Exclusion (상호배제)

- 한 번에 한 프로세스만 자원을 사용할 수 있음

2. Hold and Wait (점유와 대기)

- 하나 이상의 자원을 점유하고 있으면서, 다른 프로세스에 할당된 자원을 추가로 점유하기 위해 대기하는 프로세스가 존재해야 함

3. Non-Preemption (비선점)

- 이미 할당된 자원은 사용이 끝날 때까지 강제로 뺏을 수 없음

4. Circular Wait (순환대기)

- 대기 프로세스의 집합이 순환 형태로 자원을 대기하는 상황

 

 

메모리 단편화(Fragmentation)

1. 내부 단편화 (Internal Fragmentation)

내부단편화

사용자 영역이 프로세스의 크기보다 커서 사용 공간이 남는 현상. Process C를 적재했을 때 20MB의 공간이 남음.

 

2. 외부 단편화 (External Fragmentation)

외부단편화

프로세스의 크기가 클 때, 메모리 공간이 연속적이지 않아 탑재하지 못하는 상황. 100MB가 남았지만 메모리 공간이 불연속적이어서 Process C를 할당하지 못함. 따라서 100MB의 메모리가 낭비됨.

- 해결방법 : 빈 공간을 압축해 연속된 공간으로 만듦

 

메모리 단편화 해결방법에는 압축, 통합, 페이징, 세그멘테이션, 메모리 풀 등이 있다.

 

 

커널의 존재 이유

- 운영체제의 핵심 기능을 수행하며 안전성과 성능을 보장하기 위해

시스템 콜

- 커널 영역의 기능을 유저가 사용 가능하게 하는 기능

*응용 프로그램은 유저 모드 영역만 사용할 수 있기 때문에, 커널 영역의 명령어를 사용하려면 시스템 콜을 이용해야 함