운영체제란?
- 컴퓨터 하드웨어와 사용자 사이의 중간매개체 역활을 하는 프로그램이다.
- OS의 목적
- 사용자의 프로그램을 실행하고, 그의 문제를 더 쉽게 해결하기 위해
- 컴퓨터 시스템을 사용하기 더욱 편리하게 만든다.
- 더욱 효율적인 방식으로 컴퓨터 하드웨어를 사용한다.
컴퓨터 시스템 구성 요소
1. Hardware
– provides basic computing resources (CPU, memory, I/O devices).
2. Operating system
– 하나 이상의 사용자가 실행한 하나 이상의 응용 프로그램이 필요로 하는 하드웨어 자원의 이용을 제어하고 분배하는 역활
3. Applications programs
– 사용자의 컴퓨팅 문제를 해결하기 위해 시스템 리소스를 사용하는 방법 정의
4. Users (people, machines, other computers)
OS 정의
- Resource allocator – 자원을 관리하고 할당
- Control program – 입출력 장치의 작동과 사용자 프로그램의 실행을 제어
- Kernel – 항상 실행되고 있는 유일한 프로그램 (= 커널) 그 외의 것은 모두 application programs이다.
커널(Kernel)은 운영체제의 핵심이며, 실체다. 운영체제는 커널과 커널 모듈(Kernel module)들로 구성되는데, 커널이 운영체제의 핵심이다보니 일반적으로 운영체제와 커널은 동일시 된다. 커널이 같다면 같은 운영체제로 취급한다.
User View
일반적으로 사용자는 컴퓨터 앞에 앉아 I/O 장치(키보드와 마우스...)를 조작한다.
이 경우, 운영체제는 사용자가 컴퓨터 자원 운용(Resource utilization)을 신경쓰지 않게 즉, 사용자가 컴퓨터를 쉽게 이용할 수 있도록 한다. 또 다른 경우, 사용자는 메인프레임(Mainframe)에 연결된 터미널을 사용하거나 미니컴퓨터(Minicomputer)를 사용한다. 이 상황에서는 컴퓨터의 자원을 여러 사용자가 나눠쓰게 되는데, 운영체제는 사용자들이 자원을 공평하게 사용할 수 있도록 돕는다.
System View
시스템에게 운영체제는 자원 할당자(Resource allocator)다. 컴퓨터 시스템은 CPU 시간, 메모리 공간, 파일 저장소 공간, 입출력 장치 등 다양한 문제를 해결해야 한다. 운영체제는 이러한 컴퓨터 자원들을 관리하는 제어 프로그램(Control program)으로서 동작한다
Mainframe Systems (OS 이전의 컴퓨터 시스템)
하나의 프로그램, 하나의 프로세스만 올려서 실행. 실행 중이던 프로그램이 끝나면 다음 프로그램이 실행될 수 있는 배치 시스템.
- Reduce setup time by batching similar jobs
- Automatic job sequencing – automatically transfers control from one job to another. First rudimentary operating system.
- Resident monitor (Resident: 메모리에 항상 상주해있으면서 모든 작업을 수행하는 프로그램)
- initial control in monitor
- control transfers to job
- when job completes control transfers pack to monitor
단, CPU의 낭비 ( 오래 걸리는 I/O 작업 수행 중에도 CPU는 대기상태로 다른 작업을 수행하지 못함)
- 일괄 처리 (batch processing) 시스템
- CPU의 낭비 ( 오래 걸리는 I/O 작업 수행 중에도 CPU는 대기상태로 다른 작업을 수행하지 못함)
- 직접 접근이 가능한 디스크가 개발되며 작업 스케줄링( Job Scheduling )과 다중 프로그램 시스템 도입.
- 다중 프로그램 시스템
- 여러 프로그램을 동시에 메모리에 적재
- 프로그램이 대기상태가 되면 ( 사용자의 입출력을 기다리는 등 ), 메모리(Job Pool)에 올려져 있는 작업들 중 실행할 하나의 Job을 선택하여 실행.
- 입출력 작업과 CPU의 제어를 받는 작업이 병행되며 실행할 수 있어 CPU이용률이 상승.
- 여러 프로그램이 메모리에 적재됨으로 자원 관리가 복잡하다.
- 사용자와 컴퓨터 간의 상호 작용은 제공하지 못함
- 시분할(Time-Sharing) 시스템, Muilti-Tasking System
- CPU의 시간을 동등하게 자원에게 분배한다.
- 프로그램은 정해진 할당 받은 시간을 모두 사용하면 Swapped out, 무조건 다음 순서 작업이 Swapped in. 실행.
- 교대하는 시간이 매우 짧기 때문에 사용자와의 상호작용이 가능. (대화식 컴퓨터 시스템 Interactive Computer System)
- 응답시간이 매우 짧고, 사용자가 동시에 여러 프로그램을 이용할 수 있게 함.
- Process(메모리에 적재되어 실행 중인 프로그램)
- 많은 사용자의 프로그램 또는 많은 프로그램을 동시에 사용하기 위해서는 CPU 용량은 부족하다. 이를 해결하기 위해 주기억장치의 보조 저장장치로 디스크를 사용하는 방법( 가상 메모리 기법 )을 사용.
데스크탑 시스템
- Personal computers – computer system dedicated to a single user.
- I/O devices – keyboards, mice, display screens, small printers.
- User convenience and responsiveness.
- Can adopt technology developed for larger operating system’ often individuals have sole use of computer and do not need advanced CPU utilization of protection features.
- May run several different types of operating systems (Windows, MacOS, UNIX, Linux)
Parallel System (병렬 시스템 / 다중 프로세서 시스템)
- Multiprocessor systems with more than on CPU in close communication.
- 강결합 시스템
- processors는 memory와 clock을 공유. 즉, 공유된 메모릐를 통해 상호작용을 한다.
- 장점 of parallel system:
- Increased throughput
- Economical
- Increased reliability
- graceful degradation
- fail-soft systems
- Symmetric multiprocessing (SMP)
- Each processor runs and identical copy of the operating system.
- Many processes can run at once without performance deterioration.
- Most modern operating systems support SMP
- Asymmetric multiprocessing
- Each processor is assigned a specific task; master processor schedules and allocated work to slave processors.
- More common in extremely large systems