본문 바로가기

STUDY/운영체제

[2019.06.19] Operating System

'컴퓨터를 부팅한다'는 것은 '운영체제(Operatng System)를 불러오는 중'이라는 말과 같다.

운영체제(Operating System)이란 응용 프로그램들의 실행을 제어하는 software이다.
                                                    응용 프로그램들과 hardware 사이의 interface이다.
                                                    응용 프로그램에서 OS를 통해 hardware에 접근하고 이러한 응용프로그램을 짤 때
                                                    OS는 효율성, 편리성 두 가지의 목적을 둔다.

OS에 의해 제공되는 서비스(hardware -> software)에는 프로그램 실행, 컴퓨터 자원에 접근, error 탐지 및 반응, accounting(ex. 작어관리자가 accounting을 이용한 응용 프로그램이다.)이 있다.

Application -> Libaray -> OS -> Hardware

컴퓨터 시스템에는 I/O Device와 연결된 I/O Controller와 Processor, Memory가 있고 이들은 다 Bus로 연결되어 있다. 여기서 Memory는 RAM으로 전원을 끄면 날라가는 휘발성 메모리이다. I/O Controller와 연결된 디스크는 비휘발성 메모리이고 OS, Programs, Data를 저장하고 있다. 즉, booting이란 디스크에 있는 OS가 I/O Controller를 통해 메모리의 OS로 올라가서 읽어지는 과정이다. 디스크에 있는 OS는 저장된 파일이고 실질적으로 실행되는 OS는 memory에 있는 OS를 말한다.

Kernel이 1GB인 이유? 핵심적인 기능만 메모리에 올리고 Program and Data 크기를 크게해서 효율적으로 돌리게 하는 게 좋으므로 4GB 중 1GB가 커널이다.

- Simple Batch Systems
  프로그램 A, B, C, D를 실행시키면 A, B, C, D 이 묶음 자체가 Batch이다. A를 읽어들인 다음 보조기억장치(tape)에 넣는다. A~D까지의 프로그램을 tape에 넣고 main frame에 올리면 실행이 된다. 이 실행 방식을 Uni-programming이라 한다. CPU가 작업하는 프로그램 대상이 하나이다. Batch에서 프로그램을 차례 차례 읽어 Uni-programming으로 실행시킨다.

- Multi Programming Systems
  프로그램들을 모두 main memory에 올린다. A가 입출력을 기다리는 동안 다른 작업으로 switch 한다. 하지만, 이를 위해선 더 큰 메모리가 필요하는 hardware적인 요구사항과 OS가 좀 더 복잡해지는 software적인 요구사항이 생긴다. 또한 A, B, C 프로그램이 올라가있고 A부터 실행하고 C가 제일 간단한 프로그램이라면 앞의 A, B 프로그램이 실행될때까지 기다리는 것이 비효율적이다.

- Time Sharing Systems
  프로그램 A, B, C를 실행할 때 일정한 시간 (time slice)만큼만 번갈아가며 실행하여 먼저 끝나는 곳에 다음 프로그램을 실행한다.


Multiprogramming


Time Sharing

 비용(시간)이 더 적게 든다.
 덩치 큰 애들은 multiprogramming으로 해준다.
 background processing과 batch processing에 쓰인다.
 throughput이 좋다.

 반응 시간(명령을 시작하기까지 기다리는 시간)이 더 짧다.
 foreground processing과 interactive processing에 쓰인다.

Job(task) Scheduling = CPU Scheduling : 커널 함수, scheduler에 의해 수행된다. 우선 순위와 processor를 위해 각 program마다 기다린 시간을 기준으로 다음에 실행할 process를 선택한다.

Command-Interpreter System : 사용자가 OS에게 무얼하라고 말하는지 뜻한다. / 프로그램이 OS에게 무얼하라고 말하는 수단은 System Call이고, System call은 사용자가 불러낼 수 있는 함수들의 묶음이다. 커널함수는 각 System call에 의해 호출된다.

- Modern Operating System
  Symmetric multiprocessing : CPU가 여러개 있다. (processor가 여러개 있다.) 이 processor들은 main memory와 I/O 시설들을 공유한다. 모든 processor들은 같은 함수들을 수행할 수 있다.(symmetric)
  Multiprogramming이나 Time Sharing은 하나의 CPU 내에서 일어나는 일이다.
  UNIX, LINUX, Windows, Real-Time OS ...

'STUDY > 운영체제' 카테고리의 다른 글

[2019.06.27] Concurrency : Mutual Exclusion and Synchronization  (0) 2019.06.27
[2019.06.26] File Management  (0) 2019.06.26
[2019.06.25] IO Interrupt, Disk  (0) 2019.06.25
[2019.06.24] Thread  (0) 2019.06.24
[2019.06.20] Process  (0) 2019.06.20