Evolution of Operating Systems
- In the begining, one user at a time, working directly at console
- Phase 1
- Hardware expensive, humans cheap
- First OS: I/O subroutine libraries shared by users
- Simple batch monitor: get user away from the computer. OS = program to load and run user jobs, take memory dumps after crashes
- Overlap of I/O and computation: data channels, interrupts
- Memory protection and relocation enable multitasking: several users share the system
- OS must manage interactions, concurrency
- By mid-1960's operating systems had become large, complicated
- OS filed emerges as important discipline with principles
- Phase 2
- Hardware cheap, humans expensive
- interactive timesharing - File systems, Issues of response time, thrashing
- Personal computers: computers are cheap, so put one in each terminal
- Networking: allow sharing and communication between machines
- Personal devices: put computers in cell phones, stereo players, TVs, light switches
- Phase 3 (recent years)
- Very small (devices), very large (datacenters, cloud)
- Most of an operating system's functions have to do with managing shared resources efficiently:
- Concurrency: allow several different tasks to share processors, each appears to have a private machine. To keep track of everything, processes and threads were invented
- Memory: how can a single memory be shared among several processes?
- I/O devices: manage basic operations efficiently (e.g. many devices can be operating concurrently). Manage shared resources such as network interfaces
- Files: allow many files, for many different users, to share space on the same storage devices (disk/flash)
- Networks: allow groups of computers to work together
- Security: how to allow interactions while protecting each participant from abuse by the others?
- Characteristics of current OSes
- Enormous: millions of lines of code, 100-1000 engneer-years
- Complex: asynchronous, hardware idiosyncrasies, performance is crucial
- Poorlly understood
Summary
- 시간에 따라 OS가 발전했다.
- 하드웨어의 가격도 싸졌다.
- 공유 자원을 어떻게 효과적으로 관리할 것인지가 OS의 핵심이다.
정리가 잘 돼 있어서 받아쓰기만 하게 되네요.
'강의 > Operating Systems' 카테고리의 다른 글
5. Scheduling (0) | 2022.11.13 |
---|---|
4. Locks and Condition Variables (0) | 2022.11.12 |
3. Concurrency (0) | 2022.11.12 |
2. Threads, Processes, and Dispatching (0) | 2022.11.11 |
0. Preview (0) | 2022.10.30 |
댓글