강의: http://www.kocw.net/home/search/kemView.do?kemId=1046323
책은 따로 구매하였고 강의는 kocw에서 무료로 들을 수 있다.
커널
이라고 함(=좁은 의미의 운영체제)1. 동시작업 가능 여부
1-1. 단일작업용 운영체제
: 한 번에 하나의 프로그램만 실행시킬 수 있는 운영체제
1-2. 다중작업용 운영체제
: 동시에 2개 이상의 프로그램을 처리할 수 있는 운영체제
2. 사용자의 수
2-1. 단일 사용자용 운영체제
: 한 번에 한 명의 사용자만이 사용하도록 허용하는 운영체제
2-2. 다중 사용자용 운영체제
: 여러 사용자가 동시에 접속해 사용할 수 있게 하는 운영체제(like 서버)
3. 처리방식
3-1. 일괄처리(batch processing)
: 요청된 작업을 일정량씩 모아서 한꺼번에 처리하는 방식
3-2. 시분할 방식(time sharing)
: 여러 작업을 수행할 때 컴퓨터의 처리 능력을 일정한 시간 단위로 분할해 사용하는 방식
3-3. 실시간 운영체제(real time)
: 정해진 시간 안에 어떠한 일이 반드시 처리됨을 보장해야 하는 시스템에서 사용(경성 실시간 시스템 hard realtime system & 연성 실시간 시스템 soft realtime system 으로 세분화)
하드웨어 자원
과 소프트웨어 자원
으로 분류🔥CPU 관리 방법: CPU 스케줄링🔥
선입선출(First Come First Served)
, 라운드 로빈(Round Robin)
, 우선순위(priority)
등선입선출 기법(FCFS)
: 먼저 온 프로세스를 먼저 처리👉비효율적라운드 로빈 기법
: CPU를 한 번 할당받아 사용할 수 있는 시간을 일정하게 고정된 시간으로 제한,FCFS의 단점 보완하고자 고안된 기법우선순위 스케줄링
: 대기 중인 프로세스들에 우선순위를 부여하고 우선순위가 높은 프로세스에 CPU 먼저 할당👉우선순위는 과거 기록을 토대로 선정🔥메모리 관리 방법🔥
고정분할(fixed partition)
, 가변분할(variable partition)
, 가상메모리(virtual memory)
고정분할 방식
: 물리적 메모리를 몇 개의 분할로 미리 나누어 관리가변분할 방식
: 매 시점 프로그램의 크기에 맞게 메모리를 분할해서 사용하는 방식
2-3. 가상메모리 기법
: 물리적 메모리보다 더 큰 프로그램이 실행되는 것을 지원👉가상메모리의 주소를 물리적 메모리의 주소로 매핑 후 현재 사용되고 있는 부분만 메모리에 적재(나머지는 하드디스크 같은 보조기억장치에 저장 = 스왑영역)
✔가상메모리 주소 공간은 페이지라는 동일한 크기위 작은 단위로 나뉘어 물리적 메모리와 스왑 영역에 일부분씩 저장 = 페이징 기법
🔥주변장치 및 입출력 장치 관리 방법🔥
1. 인터럽트
라는 매커니즘을 통해 관리가 이루어짐
✔인터럽트: 주변장치가 CPU의 서비스가 필요한 경우에 신호를 발생시켜 서비스를 요청할 때 발생시키는 신호
2. 방법: CPU가 CPU스케줄링에 따라 작업을 수행하다가 인터럽트가 발생하면 하던 일을 잠시 멈추고 인터럽트에 의한 요청 서비스를 수행(하던 일 저장해두고 다시 인터럽트 처리 후 다시 돌아옴)
3. 컨트롤러(controller)
: 주변장치들이 각 장치마다 그 장치에서 일어나는 업무를 관리하기 위해 가지고 있는 일종의 작은 CPU👉해당 장치에 대한 업무를 처리하고, 이를 메인 CPU에 인터럽트를 발생시켜 보고하는 역할
작년에 정보처리기사를 공부하면서 배웠던 내용이라 생소하지는 않았다.
하지만 자격증을 위한 공부를 했고, 설명도 너무 어려웠기에 용어를 외워 자격증 취득에만 집중했다. 그래서 용어는 익숙해도 이게 무슨 의미인지 전혀 몰랐다ㅜㅜ
그런데 이 책은 너무 쉽게 설명이 되어 있다.
강의를 듣기 전에 정독을 먼저 하는데도 교양책 읽는 것 처럼 쉽게 이해가 되었다. 강의를 들으면서 한번 더 익히고, 마지막으로 블로그에 정리하면서 또 읽으니까 이제 운영체제라는 것이 이전처럼 그리 어렵게만 느껴지지는 않는다.