[운영체제] 프로세스 스케줄링 1

Urther·2021년 7월 4일
0

학부수업에서도 재수강(.. )을 할 정도로 운영체제는 늘 어려웠어요..
그래도 7월 한 달 동안 운영체제, 자료구조, 알고리즘 위주로 열심히 공부해보려구요.😅


CPU 권한 모드


① 사용자 모드(User-Mode)
② 커널 모드(Kernel-Mode) : OS가 CPU를 사용할 때 이용하는 모드


운영체제마다 다르지만 대부분의 운영체제에서 RING0를 커널 모드, RING3를 사용자모드라고 한다.

System Call 을 기준으로 사용자모드와 커널모드가 나뉘어준다.
응용프로그램이 디스크를 필요로 할 때 커널 모드 실행이 필요한데 이 커널모드 실행을 해주기 위해서는 System call을 해주어야 한다.

(* 운영체제가 큰 만화방이라면 하드웨어가 만화책이고, 응용프로그램이 대여자라고 생각하면 쉽다)


왜 커널 모드를 따로 두었을까?
함부로 응용프로그램이 전체 컴퓨터를 해치지 못하게 하기 위한 방어수단


/ CPU에 응용프로그램을 어떻게 배치해야 할까?

① 배치 처리 시스템

어플리케이션1과 어플리케이션2가 있다고 가정.
어플리케이션1가 끝나면 어플리케이션2을 순차적으로 배치해준다.

* 문제점
만약, 어플리케이션1 실행시간이 12시간이고 어플리케이션2가 1시간인데 위와 같이 배치되어있다면 어플리케이션2는 실행하기 위해서 12시간을 기다려야 한다.

② 시분할

: 다중 사용자 지원을 위해 응답시간을 빠르게 해준다.

CPU 점유 시간을 잘게 쪼개서 응용 프로그램이 사용한다.

③ 멀티프로그래밍

CPU를 이용하여 여러 프로그램이 동시에 수행되는 것 처럼.어떻게하면 CPU 활용도를 최고로 높힐지 고민한다.
(* 멀티태스킹은 단일CPU, 멀티프로세싱은 여러 CPU)

profile
이전해요 ☘️ https://mei-zy.tistory.com

0개의 댓글

관련 채용 정보