CS 377 Spring ‘14 Operating System

전체적인 Course의 Out line은 다음과 같다.

  • Course Outline & Topics
    1. Process and Threads
    2. Memory Management
    3. Storage and File Systems
    4. Distributed Systems

Lecture 01. Introductions


Operating System의 정의

User와 Arichitecture 사이의 인터페이스 또는 Raw hardware보다 프로그래밍하기 쉬운 가상 머신

 

Operating System

 

 즉, User와 Architecture 사이에서 architecture의 detail은 감추면서 동시에 보다 프로그래밍이 간편하게 만들어 주는 것이 Operating System이다.


Operating System의 특징

  • Services: OS는 표준 서비스를 제공해야 한다.
    – Examples: the file system, virtual memory, networking, CPU scheduling, and time-sharing
  • Coordination: OS는 여러 응용 프로그램과 사용자의 조절을 통해 공정성과 효율성을 갖춰야 한다.
    – Examples: concurrency, memory protection, networking, and security.
  • Goal: 기계가 사용하기 편리하고 효율적이게 OS를 설계해야 한다.

Operating System의 역사

  1. Sigle-User Computers : hardware의 가격은 비싸고, 인건비는 비교적 저렴했다. 컴퓨터는 한 번에 하나의 함수밖에 실행할 수 없었기 때문에 Overlap이 없었다. User는 Console에서만 Debugging을 할 수 있었다.
  2. Batch Processing : 다양한 업무를 일괄적으로 처리하였다. (Scheduling은 당연히 인간이 해야했다.)
  3. Overlap I/O and Computation : 비교적 새로운 방식이 적용되었다. Output 이전에 buffer 단계를 추가하였고, I/O event의 경우, interrupt를 통해 처리할 수 있게 만들었다. 그러나 여전히 한 번에 하나의 업무만 수행할 수 있었다.
  4. Multiprogramming : 몇 개의 프로그램이 동시에 수행가능하게 되었다. 또한, scheduling이 OS에 의해 수행되었다.

점차 functionality와 complexity가 증가하였고, OS design에서 complexity를 다루는 것이 중요해졌다. 그리고 이 후, 70년대로 들어서면서 Renaissance를 맞이하게 된다.

  • The Renaissance (1970's) : hardware의 가격이 저렴해지고, 인건비가 더 비싸졌다. User는 terminal을 통해 system을 공유하였다. 또한 대부분의 현대적인 OS의 원형이 된 UNIX가 출시되었다. Multics가 그 기원으로, Shell을 통해 사용자 인터페이스를 제공하였다. 그러나 response time과 thrashing(; 메모리 영역에 접근할 때, 메모리에 page fault가 높은 것) 문제가 있었다.
  • Industrial Revolution (1980's) : hardware의 가격이 매우 저렴해졌다. PC의 사용이 늘어났다. (1981년 IBM PC, 1984년 Macintosh) DOS, MacOS 등 비교적 단순한 OS가 출현하였고, GUI가 추가되었다.
  • The Modern Era (1990's - now) : 요구되는 processing이 더욱 증가하였고, 실질적인 OS가 개발되었다. 다양한 조건에 맞춘 OS가 출시되었다.

 

 

 

'study > CS377 (2014)' 카테고리의 다른 글

CS377: Threads  (0) 2020.03.11
CS377: Scheduling Algorithms  (0) 2020.03.11
CS 377: Processes  (0) 2020.03.11
CS377: Operating System Structures  (0) 2020.03.11
CS377: OS and Architecture  (0) 2020.03.10

+ Recent posts