내용 출처
KOCW 반효경 교수님 <운영체제> 강의
책 <운영체제와 정보기술의 원리>
반효경 교수님의 <운영체제> 강의 내용을 기반으로 정리했으며,
교수님의 저서 <운영체제와 정보기술의 원리>에서 추가할 만한 내용을 이와 같은 인용문 형식으로 추가함.
제 1세대 컴퓨터 (1940년대 후반~)
- 진공관 기반 컴퓨터
제 2세대 컴퓨터 (1950년대 후반~)
- 트랜지스터 기반 컴퓨터
제 3세대 컴퓨터 (1960년대 후반~)
집적회로(IC) 기반 컴퓨터
집적회로 : 수백 ~ 수천 개의 트랜지스터를 단 한 개의 작은 실리콘 칩에 통합회로로 묶는 기술
제 4세대 컴퓨터 (1970년대 중반~)
- 고밀도 집적회로(LSI) 및 초고밀도 집적회로(VLSI) 기반 마이크로컴퓨터
- 마이크로프로세서의 보급은 개인용 컴퓨터 혁명을 야기함
범용 컴퓨터
- 임의의 목적으로 사용될 수 있는 컴퓨터
- 규모에 따라 슈퍼컴퓨터, 메인프레임 컴퓨터, 워크스테이션, 개인용 컴퓨터 등으로 나누어짐.
임베디드 컴퓨터
- 특수한 목적을 위해 각종 장치의 제어용으로 내장되는 컴퓨터
클라우딩 컴퓨팅
- 고성능 컴퓨터를 원격으로 사용하고 사용료를 지불하는 방식
- 각 사용자는 자신만의 독자적인 컴퓨터가 존재한다고 인식한다. 이렇게 사용자가 느끼는 독자적인 컴퓨터를 가상머신(virtual machine), 이를 지원해주는 기술을 가상화(virtualization) 기술이라고 한다.
사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
협의의 운영체제 = 커널(kernel)
운영체제의 핵심 부분으로 메모리에 상주하는 부분
광의의 운영체제
커널을 포함하여, 각종 주변 시스템 유틸리티를 포함한 개념
1) 컴퓨터 시스템의 자원을 효율적으로 관리 (효율성 + 형평성)
그래서 운영체제를 자원관리자(resource manager)라고 부르기도 함.
2) 컴퓨터 시스템을 편리하게 사용할 수 있는 환경 제공
1) 동시 작업 가능 여부
2) 사용자의 수 (여러 계정의 동시 접속 가능 여부)
3) 처리 방식
일괄 처리(batch processing)
작업 요청의 일정량을 모아서 한꺼번에 처리
작업이 완전 종료될 때까지 기다려야 함.
시분할(time sharing)
여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용
일괄 처리 시스템에 비해 짧은 응답 시간을 가짐 (ex. UNIX)
대화형 시스템(interactive system) : 사용자의 요청에 대한 결과를 곧바로 얻을 수 있는 시스템
실시간(Realtime OS)
정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되는 시스템
Hard realtime systems (경성 실시간 시스템)
Deadline이 매우 중요한 경우 (원자로/공장 제어, 미사일 제어)
Soft realtime systems (연성 실시간 시스템)
Deadline이 있지만 중요성은 덜한 경우 (영화 스트리밍, 내비게이션)
우리가 배우는 운영체제는 다중 작업 / 다중 사용자 / 시분할 방식이다!
1) UNIX 계열
2) WINDOWS 계열
MS 윈도우의 특징 = 플러그 앤 플레이(plug and play)
시스템에 새로운 하드웨어를 장착하면 운영체제가 자동으로 하드웨어를 감지하여 그에 맞게 설정된다.
① 선입선출 기법
먼저 온 것을 먼저 처리해주는 방식 (비효율적)② 라운드 로빈 기법
CPU를 한 번 할당받아 사용할 수 있는 시간을 일정하게 고정된 시간으로 제한하는 방식③ 우선순위 스케줄링
CPU 사용 대기 중인 프로세스들에 우선순위를 부여하고, 그에 따라 CPU를 할당하는 방식
① 고정분할 방식
물리적 메모리를 몇 개의 분할로 미리 나누어 관리하는 방식
분할이 고정적이므로, 분할의 크기보다 작은 프로그램이 적재되는 경우 남는 공간이 발생한다. 이를 내부조각이라고 한다.② 가변분할 방식
매 시점 프로그램의 크기에 맞게 메모리를 분할해서 사용하는 방식
내부조각은 발생하지 않는다.
대신 프로그램에 할당되지는 않았지만 그 크기가 작아 프로그램을 올리지 못하는 메모리 영역인 외부조각이 발생할 수 있다.③ 가상메모리 기법
가상메모리를 활용하는 방식
물리적 메모리보다 더 큰 프로그램이 실행되는 것을 지원한다.
파일 관리(디스크 스케줄링) : 디스크에 파일을 어떻게 보관할 것인가
(디스크는 헤드를 움직이며 읽고 쓰는데, 헤드의 이동 거리를 어떻게 최소화할 것인가의 문제)
입출력 관리 : 입출력 장치와 컴퓨터 간에 어떻게 정보를 주고 받게 할 것인가 (인터럽트(interrupt)에 기반)
그 외 : 프로세스 관리, 보호 시스템, 네트워킹, 명령어 해석기 등
<컴퓨터에서 여러 작업을 동시에 수행하는 것을 뜻하는 용어들>
Multitasking
Multiprogramming - 여러 프로그램이 메모리에 올라가 있음을 강조
Time sharing - CPU의 시간을 분할하여 나누어 쓴다는 의미를 강조
Multiprocess
cf) Multiprocessor : 하나의 컴퓨터에 CPU가 여러개 붙어 있음