본문 바로가기

컴공스

운영체제2

@마크다운


# 운영체제 개념잡기

## 운영체제 = 도서관

## 응용프로그램 = 시민


- 시민은 도서관에 책(자원)을 요청하고 빌리고,

- 도서관은 시민에게 빌려준 책(자원)을 다시 회수


- 운영체제는 응용프로그램이 요청하는 메모리를 허가하고 분배

- 운영체제는 응용프로그램이 요청하는 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