@마크다운
# 운영체제 개념잡기
## 운영체제 = 도서관
## 응용프로그램 = 시민
- 시민은 도서관에 책(자원)을 요청하고 빌리고,
- 도서관은 시민에게 빌려준 책(자원)을 다시 회수
- 운영체제는 응용프로그램이 요청하는 메모리를 허가하고 분배
- 운영체제는 응용프로그램이 요청하는 CPU시간을 관리
- 운영체제는 응용프로그램이 요청하는 IO Devices 처리를 제어
## CPU Protection Rings
- CPU는 권한 모드를 가지고 있다.
- 사용자 모드
- 커널 모드 : 특권 명령어 실행, 작업 수행을 위한 자원 접근이 가능하다.
## 시스템콜
운영체제와 응용프로그램간 인터페이스
- 운영체제는 시스템 자원 사용을 위한 API를 제공함
ex) POSIX API, 윈도우 API (잘 모르겠다)
## 멀티 프로그래밍, 시분할 시스템
### 운영체제의 자원 관리가 필요한 이유
- 처음에는 응용 프로그램이 실행되다 죽으면 컴퓨터를 껐다 켜야했음.
- 응용 프로그램이 함부로 컴퓨터 전체를 죽이지 못하도록 운영체제가 자원을 관리 하게끔 함
### 배치 프로그래밍
- 여러 프로그램을 순차적으로 실행
- 실행시간이 100초인 프로그램이 진행중일 때 다음 순서에 1초짜리 프로그램이 있다면 1초짜리 프로그램은 101초가 지나야 실행이 끝남.
- 또는 문서작성 하면서 음악을 듣고 싶다.
### 시분할 시스템
시분할 시스템(멀미 태스킹) : 여러 응용 프로그램을 동시에 실행할 수 있도록 하는 기술
- 프로그램을 프로세스로 관리
- micro이하의 시간단위(퀀텀이라고도 한다.)로 CPU를 사용할 프로세스를 바꿈 (context switch)
- 사용자에게는 동시에 실행되는것 처럼 보이게 된다.
### 프로세스
- 운영체제는 여러 프로세스 실행을 관리
- 프로세스 상태 관리
- 깨어 있는 상태
- running state : 현재 CPU에서 실행 상태
- ready state : CPU에서 실행 가능 상태
- 잠들어 있는 상태
- block state : 특정 이벤트 발생 대기
### 스케쥴러
어떻게 여러 프로세스를 효과적으로 시분할해서 CPU에 넣을 수 있을까
- 프로세스 상태를 관리하고, 상태에 따라 해당 시점에 가장 필요한 프로세스를 실행시키자
#### FIFO(queue) 스케쥴러
먼저 들어온걸 프로세서로 보낸다.
#### Round-Robin(RR) 스케쥴러
먼저 들어온걸 프로세서로 보내고 일정시간만큼 동작하고 다시 준비큐 제일뒤로 보낸다.
#### 우선순위 기반 스케쥴러
- 정적 우선순위
- 미리 프로세스마다 우선순위를 지정함.
- 동적 우선순위
- 스케쥴러가 상황에 따라 우선순위를 변경시킨다.
'컴공스' 카테고리의 다른 글
운영체제1 (0) | 2018.05.05 |
---|---|
객체란 무엇인가? (0) | 2018.04.14 |
주어진 리스트에서 정수만 뽑아 제곱하기 (단 lambda,filter,map만 사용) (0) | 2018.02.25 |
egyptian_multiplication (0) | 2018.02.11 |
leap_year (0) | 2018.02.11 |