-
기술 면접 - 운영체제 (1)기술 면접 2021. 4. 19. 03:07
운영체제 구조
두 가지 모드
- 사용자 모드 : 응용 프로그램이 사용
- 커널 모드 : OS가 사용
- 시스템 콜은 커널 모드로 실행
- 커널 모드로 실행하려면, 반드시 시스템 콜을 거쳐야 함
- 시스템 콜은 운영체제가 제공
- 함부로 응용 프로그램이 전체 컴퓨터 시스템을 해치지 못함
프로세스 스케쥴링
배치 처리 시스템
- 자동으로 다음 응용 프로그램이 이어서 실행될 수 있도록 하는 시스템
- FIFO - Queue를 사용
- 어떤 프로그램은 실행이 너무 오래 걸려서, 다른 프로그램이 실행하는데 시간을 많이 기다려야 한다
- 나는 MP3 음악을 들으면서, 문서 작성을 하고 싶음!
- 두 가지 프로그램을 동시에 실행할 수 없음
시분할 시스템
- 응용 프로그램이 CPU를 점유하는 시간을 잘게 쪼개어 실행될 수 있도록 하는 시스템
- 컴퓨터 응답 시간을 최소화 하는 시스템
멀티 태스킹
- 단일 CPU에서, 여러 응용 프로그램이 동시에 실행되는 것처럼 보이도록 하는 시스템
멀티 프로세싱
- 여러 CPU에 하나의 프로그램을 병렬로 실행하여 실행속도를 극대화시키는 시스템
멀티 프로그래밍
- 최대한 CPU를 많이 활용하도록 하는 시스템
스케쥴링 알고리즘
프로세스
- 실행중인 프로그램은 프로세스라고 함
- 프로세스 : 메모리에 올려져서 실행중인 프로그램
- 작업, task, job이라는 용어와 혼용
FIFO 스케쥴러
프로세스가 저장매체를 읽는다는지, 프린팅을 한다든지 하는 작업 없이, 쭉 CPU를 처음부터 끝까지 사용
- 가장 간단한 스케쥴러(배치 처리 시스템)
- FCFS(First Come First Served) 스케쥴러
- Queue에 넣고 순서대로
최단 작업 우선(SJF) 스케쥴러
- 가장 프로세스 실행 시간이 짧은 프로세스부터 먼저 실행을 시키는 알고리즘
- 실행 시간을 다 알아야 가능한 것
여기서 잠깐!
- RTOS(RealTime OS)
- 응용 프로그램 실시간 성능 보장을 목표로 하는 OS
- 정확하게 프로그램 시작, 완료 시간을 보장
- GPOS(General Purpose OS)
- 프로세스 실행시간에 민감하지 않고, 일반적인 목적으로 사용되는 OS(windows, linux .. )
우선 순위 기반 스케쥴러
- Priority-Based 스케쥴러
- 정적 우선순위
- 프로세스마다 우선순위를 미리 지정
- 동적 우선순위
- 스케쥴러가 상황에따라 우선순위를 동적으로 변경
라운드- 로빈 스케쥴러
- 프로세스가 끝나지 않아도 다른 프로세스로 넘겨준다
- 시분할 시스템 기반
- 큐를 사용해서 계속 돈다
프로세스 상태
- ready : CPU에서 실행 가능 상태
- blocked : 특정 이벤트 발생 대기 상태 (wait)
Queue 사용
- Ready State Queue
- Running State Queue
- Block State Queue
선점형과 비선점형 스케쥴러
- 선정혐 스케쥴러
- 하나의 프로세스가 다른 프로세스 대신에 프로세스를 차지할 수 있음
- 비선점형 스케쥴러
- 하나의 프로세스가 끝나지 않으면 다른 프로세스는 CPU를 사용할 수 없음
'기술 면접' 카테고리의 다른 글
기술 면접 - 데이터 베이스 (2) (0) 2021.04.20 기술 면접 - 데이터 베이스 (1) (0) 2021.04.20 기술 면접 - 운영체제 (4) (0) 2021.04.19 기술 면접 - 운영체제 (3) (0) 2021.04.19 기술 면접 - 운영체제 (2) (0) 2021.04.19