*이 카테고리의 게시글은 경북대학교 운영체제 수업을 수강하면서 개인적인 공부 차원에서 작성하고 있습니다.
교재 : Operating Systems Three Easy Pieces (Remzi H. Arpaci-Dusseau & Andrea C. Arpaci-Dusseau)
1️⃣ operating system이란?
컴퓨팅 시스템을 구현하는 interface
→ 사용자는 컴퓨터 하드웨어의 복잡한 디테일을 몰라도 os를 통해 원하는 동작을 수행할 수 있게된다.
사용자에게 사용자가 원하는 기능과 목적을 사용자가 손쉽게 달성할 수 있도록 모든 서비스를 제공해주는 SW
📌os가 하는 주요한 일 : resource management (coordinater)
- (편의성)복잡한 컴퓨터 시스템을 쉽게
- (효율성)복잡한 컴퓨터 시스템 resource를 효율적으로 사용 및 관리하여 성능 극대화 가능케 / (→ 컴퓨터가 사용하는 기능을 충분히 활용할 수 있게! 사용자가 원하는 기능을 가장 빠르고 효율적이게 수행)
- (공정성)여러 작업을 수행중일 때 하드웨어 자원을 적절히 할당 → user experience 보장
📌os의 분류
- single user system
: 동시에 해당 시스템에 접속할 수 있는 유저의 수가 1명
- multi user system
: 동시에 해당 시스템에 접속할 수 있는 유저의 수가 1명 이상
- single tasking system
: 한 번에 오직 하나의 program만 수행 가능
- multi tasking system
: 한 번에 여러가지의 program 수행 가능
- open source system (linux)
: 소스코드 변경 가능
- closed source system (window)
: 소스코드 변경 불가
2️⃣History of OS
새로운 서비스와 하드웨어들로 인해 운영체제의 진화가 발생한다.
1. (~1950년대) serial processing
: 특별히 OS가 없어 운영자가 필요했다. 인력에 비해 하드웨어가 값이 비쌌다. 기계어 별로 프로그램이 존재했으며, 하나의 프로그램은 컴퓨터 수행에 필요한 모든 것이 포함되어야 했다. 콘솔에서 한 명의 사용자가 작업 가능했고, 오프라인 디버깅을 수행했다. 작업 간의 전환이 매우 느렸다.
목적 : 하드웨어의 효율적 활용
2. (~1960년대) batch processing
: 모든 프로그램과 데이터를 수집한 후 batch 단위로 묶어 한꺼번에 처리했다. 특수 프로그래밍 언어, job control language가 존재했다. 설정 및 작업시간이 단축되어 CPU 활용도가 높아졌다.
- monitor가 항상 main memory 안에 상주하여 simple scheduler 역할을 수행했다. (→ OS의 프로토타입)
→ 메모리 보호, 타이머, 명령어, interrupt가 추가되었다.
3. (~1970년대) multiprograming batch processing
: I/O 받는 시간동안 CPU가 다른 일을 하지 못하는 비효율 발생! → 그동안 CPU가 다른 일 할 수 있게 multiprogramming system 안정적으로 구현해야했다.
목적 : CPU utilization 최대화 / job control language
🌟안정적 멀티프로그래밍에 필요한 기능들이 추가되었다.
- buffering 및 interrupt handling
: 특정 job 수행 후 다시 수행하던 job으로 돌아갈 때, 이전 수행시에 계산된 값이 기억되어야 한다.
- memory protection & relocation
: <protection> job 수행시에 다른 job이 소유한 메모리 영역을 사용하지 못하게 한다.
<relocation> 특정 job의 수행이 끝나 memory에서 빠지고, 새로운 job이 들어올 때 해당 job을 메모리의 적절한 곳에 배치해야한다. ( 새로운 job이 더 용량이 큰 경우 등)
- concurrent programing
: 동시에 여러 프로그램 실행시, 해당 job들을 끊기지 않고 쭉 수행했을 때와 실행결과가 똑같이 나올 수 있어야한다.
- job scheduler
: 이 job의 수행 후 무슨 job을 수행할지를 우선순위, 메모리 크기 등 여러 기준을 통해 결정한다.
4. (~1980년대) time-sharing processing
: 하드웨어가 저렴해져 사람들의 시간을 효율적으로 활용하는 것이 중점이 되었다. user experience!
목적 : response time 최소화 / 터미널에 입력된 명령어에 의해 수행
→ interactive computing : 동시 사용자가 몇명이든지 사용자와 1대1로 요청이 실행되게 하는 것
→ CPU가 인간의 감각보다 빨라졌기에, 사용자의 전체 시간을 쪼개어 처리함으로 여러 사용자의 요청이 동시에 처리되는 것처럼 보인다.
🌟성능의 지표
- throughput : 일정 시간 동안 얼마나?
- response time : ‘내 요청이 수행되고 있구나!’를 알 수 있는 첫번째 응답까지의 시간
- TAT(turn around time) : 시작부터 최종 완료까지의 시간
🌟I/O type
- synchronous i/o : 같은 동작을 수행할 때 매번 같은 결과를 보장한다.
- asynchronous i/o : 같은 동작 수행시 매번 같은 timeline이 보장되지 않는다. (하드웨어의 data 이동을 기다리지 않고 그동안 다른 일을 한다.)
🌟real time system : system은 특정 deae line이 충족되어야 한다.
- hard real time system : dead line 100% 보장. 어길 경우 제한적 결과가 초래된다. (재산 손실, 인명피해 등)
- soft real time system : dead line 어길 수도 있다. 어겨도 제한적 결과는 발생하지 않고, QoS에 영향을 미친다.
'Computer Science > Operationg System (운영체제)' 카테고리의 다른 글
[OS] scheduling(1) (0) | 2024.05.06 |
---|---|
[OS] LDE machanism (limited direct execution) (0) | 2024.05.01 |
[OS] Process (0) | 2024.04.29 |
[OS] computing system (0) | 2024.04.29 |
[OS] OS의 특징 (0) | 2024.04.29 |