[운영체제] 2장: Operating System Overview

CoCoral·2023년 10월 16일
1

운영체제

목록 보기
2/11

Operating System

  • 역할
    • 애플리케이션의 수행을 제어한다. (실행 속도와 정확성을 위해서)
    • 애플리케이션과 하드웨어 사이의 인터페이스
    • 프로그래머에게 하드웨어의 디테일을 숨기고 시스템을 편리하게 사용할 수 있도록 인터페이스를 제공한다.
  • 기능
    • Program development
    • Program execution
    • Access I/O devices
    • Controlled access to files
    • System access
    • Error detection and response
    • Accounting: 자원 사용 통계 수집, 성능 척도 모니터링 등
  • 자원 관리자로서의 OS
    • I/O, 메인 메모리, 보조 기억 장치, 프로세서 실행 시간 등의 자원을 관리한다.
    • Kernel: OS 프로그램 중 항상 메인 메모리 상에 위치하는 기능 (가장 자주 사용되는 기능들이 모여 있다.)

Evolution of Operating Systems

  • Serial Processing: 사용자가 각 프로그램을 순차적으로 직접 처리해야 한다.
  • Simple Batch Systems: 여러 프로그램들이 자동적으로 순차 처리된다.
    • 프로세스 전환이 불가하여 프로세서의 대기 시간(I/O 작업 등에 의한)이 증가한다. 비효율적!
  • Multiprogrammed Batch System: 프로세스 전환이 가능하다.
    • 한 프로세스의 I/O 작업이 진행되는 동안 프로세서가 다른 프로그램을 실행한다.
    • 만약 프로세스 내에 I/O 작업이 없다면 프로세스 전환이 이루어지지 않을 수 있다. (프로세서는 I/O 작업의 유무를 미리 알지 못한다.)
    • 프로세서의 사용을 최대화하는 것이 목적이다.
    • 타임 아웃이 사용되지 않는다.
  • Time Sharing System
    • 각 프로그램을 일정한 타임 슬라이스 단위로 번갈아 가면서 실행한다.
    • 프로세서의 시간을 여러 프로그램들이 공유한다.
    • 응답 시간을 최소화하는 것이 목적이다.
    • 프로세스 전환에 OS가 필요하므로 불필요한 OS 개입이 많아진다.
  • Time Sharing System → Multiprogrammed Batch System (역 X)

Major Achievements

  • Processes
  • Memory management
  • Information protection and security
  • Scheduling and resource management

Modern Operating Systems

  • Microkernel architecture: OS의 핵심 기능만 커널에 포함시킨 것
    • 프로그램 스위칭이 자주 일어나기 때문에 시스템 성능이 향상되거나 프로그램 실행 속도가 빨라지는 것은 아니다.
    • 커널에 포함되지 않은 나머지 기능들이 모듈화되면서 OS 개발이나 보수가 용이하게 된다. (확장성 향상)
    • 예) Windows
  • Multithreading: 한 프로세스에서 동시에 실행될 수 있는 쓰레드들을 동시에 실행하는 것
    • 실행 속도가 증가한다.
  • Symmetric Multiprocessing: 여러 개의 프로세서를 가지고 있어 여러 프로세스를 동시에 실행할 수 있는 시스템
    • 여러 프로세서가 동시에 접근할 수 없는 데이터에 대해 순차적으로 작업하게 하는 Conference control 이 이루어지면서 실행 속도가 감소한다.
  • Distributed operating systems
    • 여러 컴퓨터 시스템들이 네트워크로 연결되어 하나의 시스템인 것처럼 작동한다. (2단계로 이루어진 OS)
  • Object-oriented design
    • 모듈화 → 개발 용이
    • 실행 속도 향상과 연관이 없다.
profile
언젠간 iOS 개발자가 되겠지

0개의 댓글