Operating System(OS)의 역사
Operating System이 무엇인지를 알기 위해서는 우선 OS가 발전해 온 역사를 알아야 한다.
OS의 역사는 크게 3페이즈로 나뉜다.
1 페이즈 : 1950년대 초반 ~ 1960년대 중반
2 페이즈 : 1960년대 중반 ~ 1990년대 중반
3 페이즈 : 1990년대 중반 ~ 현재
1페이즈
- Human Operator as an OS
- 하드웨어가 비싸고 인건비가 쌈
- Slow job to job transition
- Utilization(Computing time / Operating time) 안좋음
- Simple Batch monitor & Batch OS with Advanced SPOOLing
- Utilization 낮다는 단점 개선
- Batch(한꺼번에 묶어서 저장)를 통해 해결
- Spooling(Simultaneous Peripheral Operations Online)을 통해 해결
- 위 2가지 기능을 구현하기 위해 컴퓨터 메인 메모리에 상주하는 컨트롤 소프트웨어가 필요하게 됨
- 이게 Operating System
- 하지만, Utilization이 아직도 낮다는 단점 존재
- I/O 진행하는 동안 CPU는 다른 일을 못하기 때문
- 즉, CPU 연산과 I/O 연산을 병렬처리할 순 없음
- Multiprogrammed Batch OS
- Utilization이 아직도 낮다는 단점의 해결책으로 Multiprogramming이 나옴
- Multiprogramming - 여러개의 job을 main memory에 올리고 CPU 주고 받고 수행하는 형태
- Asynchronous - Utilization 상승
- Synchronous - 병렬화 X
- 하지만, Multiprogramming에는 다음의 3가지 어려움이 있음
- Memory protection and relocation added to OS
- Base registers, Bound registers로 해결
- Base register : Job이 있는 주소값
- Bound register : 해당 job이 차지하는 주소값의 범위(크기)
- Base register + Bound register = MMU(Memory Management Unit)
- Relocation : Program이 compile 되었으면 메모리에 재할당 되는 것
- Base registers, Bound registers로 해결
- Higher Utilization because of multiple jobs
- Concurrent programming became necessary
- Memory protection and relocation added to OS
- Utilization이 아직도 낮다는 단점의 해결책으로 Multiprogramming이 나옴
- Utilization 낮다는 단점 개선
2 페이즈
- Interactive time-sharing OS
- 이제는 하드웨어 싸고 인건비 비쌈
- 여러 사용자가 CPU와 메모리 자원을 공유하며 동시에 시스템을 사용하는 환경을 제공
- PC OS
- 컴퓨터가 쌈
- 개인용 컴퓨터에서 실행됨
- OS with internet
- 인터넷 연결 및 네트워킹 기능이 중점
3 페이즈
- OS with built-in Internet Access
- 인터넷 프로토콜 추가됨
- 인터넷 프로그래밍 중요
- 멀티태스킹 중요해짐
- ex. Chrome, Windows, macOS
- Sophisticated PC OS
- 많은 컴퓨터와 네트워크 자원 필요로 함
- 더 복잡해졌지만 가격이 더 싸짐
- ex. Windows(Windows 10/11 Pro 버전 이상), macOS, 고급 Linux(Ubuntu)
- OS with Multimedia Support
- 영상, 오디오, 그래픽 처리에 최적화된 OS
- 가전제품과 컴퓨터가 합쳐짐
- ex. Windows (특히 멀티미디어 작업에 최적화된 Windows Media 기능 포함), macOS (iMovie, Final Cut Pro와 같은 애플리케이션과의 호환성), Android, iOS (멀티미디어 지원 및 편집 앱 중심)
- OS as Commodity
- 컴퓨터, 모바일, 클라이드 시스템에서 많이 쓰이는 OS
OS의 기능
- Coordinator(조정자)
- 더 효율적이고 공정하게 동작하도록 만들어주는 역할
- Concurrency
- several users doing less jobs each vs one user doing many jobs
- I/O devices
- I/O devices run concurrently with the CPU
- Devices interrupts CPU when done
- Memory
- Each process needs some memory to execute
- Files
- Each user owns a collection of files
- Network
- allow groups of computers to work together
- Illusion Generator
- 자원이 무제한처럼 보이게 하는 환상을 만들어주는 역할
- by time sharing, virtual memory
- 자원이 무제한처럼 보이게 하는 환상을 만들어주는 역할
- Standard Library
- 표준 라이브러리 형태의 기능, 인터페이스 제공
이번 강의에서 가장 중요한 것은 Operating System의 정의입니다.
- 그 중 첫번째는 컴퓨터 시스템에 존재하는 하드웨어 자원을 관리해주는 Coordinator
- 두 번째는 앱을 다운로드해서 operate(작동)시키는 runtime environment
'강의 정리 > 운영체제 강의 정리' 카테고리의 다른 글
Operating Systems - Stack and Dynamic Memory Allocation of Local Variables (1) | 2024.11.10 |
---|---|
Operating Systems - Review of Computer Hardware (0) | 2024.11.04 |
K-MOOC '운영체제의 기초' 정리 (0) | 2024.10.31 |