[운영체제]Intro

sherry·2024년 3월 16일
0

OS란?

Hardware를 이용하기 쉽게 convert 해주는 Software

3세대 OS

Multi- Programmed systems

  • CPU utilziation 높이는 게 목표

    Features

    • Jop scheduling : 누구를 메모리에 올릴지
    • Memory management
    • CPU scheduling : 누구를 실행시킬지
    • Concurrency
    • Protection : Job끼리 서로의 메모리 영역 침범 X
    • Spooling : 프린트할 이미지를 파일로 만들어서 내보내는 식으로 CPU 효율성 관리

Time-Sharing systems

: 오늘날의 OS
=> Reponse time 개선 (사용자 입장에서 노는 시간을 줄임)

Features

  • Sophicated CPU shceuling
  • Virtual memory and swapping
  • File system
  • Synchronization
  • Interprocess communication
  • Interactive shell

뭐 다양한 OS를 만들려는 시도들이 있었고, 그 중 주목해서 볼만한게 Multics, Unix

Multics

: Multiplexed Information and Computing Service
Time-shared / Multi-processor main frame

  • Hierarchical file system
  • Virtual memory
  • User-level command shell
  • Dynamic linking, shared memory
  • Implementation in high-level languge

Unix

Multics 프로젝트가 결국엔 실패함 이게 언어를 엄청 어려운 거 썼던듯? 그래서 C언어로 시작한 프로젝트

  • Hierarchical file system

  • Process control(fork(), exec(), wait(), exit())

  • Shells (I/O redirection에 대한 내용)

  • Signals

    OS: Application View

    프로그램이 실행되기 위한 환경을 제공해준다고 생각하면 된다. 따라서 underlying 컴퓨터 시스템의 추상화를 제공해주고, 어느정도까지 노출시킬지를 OS가 결정

    Typical OS abstractions
    Processors => Processes, Threads
    Memory => Address space(virtual memory)
    Storage => Volumes, Direcotires, Files
    I/O Devices => Files
    Networks => Files (socket, pipe)

    OS: System View

    컴퓨터 시스템의 resource를 관리

    Sharing
    Protection
    Fiarness
    Efficiency

    OS: Implementation View

    OS는 highly concurrent하고, event-driven software임 !
    여기서 Event란 System calls과 Interrupt(주로 기계적)

    다시 한 번만 정리해보자면 OS의 Three Pieces는 Virtualization / Concurrency / Persistence

profile
Es muss sein!

0개의 댓글