본문 바로가기

공부 기록/OS

[OS/공룡책] Chapter 1. 서론 - 운영체제의 작동, 자원 관리

운영체제의 작동

- 운영체제는 프로그램이 실행되는 환경을 제공한다.

- 시스템 데몬 : 커널이 실행되는 전체 시간 동안 실행된다.

 

다중 프로그래밍과 다중 태스킹

- 운영체제의 가장 중요한 측면 중 하나는 여러 프로그램을 실행할 수 있다는 것이다.

- 프로세스 : 다중 프로그램 시스템에서 실행 중인 프로그램

- 다중 태스킹 시스템에서 CPU는 여러 프로세스를 전환하며 프로세스를 실행하지만 전환이 자주 발생하여 사용자에게 빠른 응답 시간을 제공하게 된다.

- 여러 프로세스를 병행하게 실행하려면 프로세스 스케줄링, 디스크 저장장치 및 메모리 관리를 포함하여 운영체제의 모든 단계에서 서로 영향을 미치는 기능이 제한되어야 한다.

- 가상 메모리 : 일부만 메모리에 적재된 프로세스의 실행을 허용하는 기법. 적절한 응답시간을 보장하는 일반적인 방법

 

이중-모드와 다중모드 운용

- 적어도 두 개의 독립된 연산 모드, 즉 사용자 모드와 커널 모드(수퍼바이저 모드, 시스템 모드, 특권 모드)가 필요하다.

- 모드의 개념은 두 가지 모드 이상으로 확장될 수 있다.

- 시스템 콜은 사용자 프로그램이 자신을 대신하여 운영체제가 수행하도록 지정되어 있는 작업을 운영체제에 요청할 수 있는 방법을 제공한다.

- 어떠한 형태를 가지든 시스템 콜은 운영체제에 의해 수행될 동작을 사용자 프로세스가 요청할 수 있게 한다.


자원 관리

프로세스 관리

- 프로그램은 수동적 개체지만 프로세스는 다음 수행할 명령을 지정하는 프로그램 카운터를 가진 능동적 개체

 

1. 사용자 프로세스와 시스템 프로세스의 생성과 제거

2. CPU에 프로세스와 스레드 스케줄하기

3. 프로세스의 일시 중지와 재수행

4. 프로세스 동기화를 위한 기법 제공

5. 프로세스 통신을 위한 기법 제공

 

메모리 관리

- 메인 메모리는 일반적으로 CPU가 직접 주소를 지정할 수 있고, 직접 접근할 수 있는 유일한 대량 메모리이다.

 

1. 메모리의 어느 부분이 현재 사용되고 있으며 어느 프로세스에 의해 사용되고 있는지 추적해야 한다.

2. 필요에 따라 메모리 공간을 할당하고 회수해야 한다.

3. 어떤 프로세스(또는 그 일부)들을 메모리에 적재하고 제거할 것인가를 결정해야 한다.

 

파일 시스템 관리

1. 파일의 생성 및 제거

2. 디렉터리 생성 및 제거

3. 파일과 디렉터리를 조작하기 위한 프리미티브의 제공

4. 파일을 보조저장장치로 매핑

5. 안정적인(비휘발성) 저장 매체에 파일을 백업

 

대용량 저장장치 관리

- 보조저장장치의 적절한 관리는 컴퓨터 시스템에서 가장 중요하다.

 

1. 마운팅과 언마운팅

2. 사용 가능 공간의 관리

3. 저장장소 할당

4. 디스크 스케줄링

5. 저장장치 분할

6. 보호

 

캐시 관리

- 특정 정보가 필요할 경우, 우리는 먼저 캐시에 그 정보가 있는지를 조사해 보아야 한다.

- 캐시 크기가 제한되어 있으므로 캐시 관리는 중요한 설계 문제이다.

- 캐시 일관성 문제 => 다중 처리기 환경 하에서는 데이터의 복사본이 동시에 여러 캐시에 존재할 수 있다. 한 캐시에 있는 데이터의 값이 갱신될 경우 데이터가 존재하는 모든 캐시에 즉각적으로 반영되어야 한다.