0%

210302_TIL(OS 기초 정리)

오늘 배운 것

OS

kernel

컴퓨터 공학에서 말하는 OS는 커널(Kernel)이다.

시스템 콜은 OS의 기능을 사용할 수 있도록 커널이 제공해주는 함수 또는 명령이다.

프로그래밍 언어 별로 시스템 콜을 호출하는 API를 갖는다.

프로그램에서 커널 모드에서만 실행할 수 있는 기능을 사용해야할 경우, API를 통해 시스템 콜을 호출하게 되면 프로그램은 커널에 의해서 커널 모드로 바뀌며 커널만 사용할 수 있는 명령어를 실행 후 사용자 모드로 돌아간다.

프로세스

실행 중인 프로그램 = 프로세스

실행 중인 프로그램은 메모리에 올려진 상태

Batch Processing

순차적으로 프로그램을 실행한다.

앞서 실행 중인 프로그램에 시간 소모가 많다면 효율이 떨어진다.

시분할 시스템(Time Sharing)

하나의 컴퓨터에서 다중 사용자 지원을 위해 CPU를 10ms 단위로 나눠서 각각의 프로세스들을 교체하며 처리한다.

멀티 태스킹

개인 사용자가 실시간으로 다중 프로세스들을 동시에 처리하는 것 처럼 보이는 프로세스 스케쥴링 방식이다. (10~20ms 단위로 응용 프로그램을 바꾸며 실행한다.)

멀티 프로그래밍

단위 시간 당 응용프로그램을 최대한 많이 실행시키는(최대한 CPU 활용) 프로세스 스케쥴링 기법이다.

메모리 계층

Register - Cache - Memory - Disk

메모리 계층에 따라 데이타 로드에 따른 시간이 다르다.

Register가 가장 빠르며 HardDisk와 같은 저장매체가 가장 느리다.

멀티 프로그래밍과 Wait

위의 메모리 계층에 의해 발생하는 대기 시간에 따라 CPU 활용도를 극대화 하기 위해 사용하는 것이 멀티 프로그래밍 스케쥴링 알고리즘이다.

Wait: 저장매체의 로드 대기 시간

멀티 태스킹과 멀티 프로세싱

멀티 태스킹은 단일 CPU에서 여러 프로세스를 스케쥴링하는 것이다.

멀티 프로세싱은 여러 CPU가 하나의 프로그램을 병렬 처리하여 실행 속도를 극대화하는 것이다.

Nyong’s GitHub