06. OS

OS의 목적

  1. 편리성 2. 효율성 3. 발전성

OS의 역할

  1. 중재자 프로그래머에게 시스템을 사용하기 위한 편리한 Interface를 제공
  2. 자원 관리자

OS 발전

  1. Serial Processing

    OS 존재 X

    사람이 직접 Job 적재

    => Job to Job Transition : 스케쥴링 어떻게 할 것인지 문제 존재

    문제점

    1. 고가의 자원을 비효율적으로 사용
    2. 셋업시간(컴파일러 세팅 등)의 장기화
    3. 스케쥴링 문제
  2. Simple batch System

    비슷한 일들끼리 묶어서 셋업 시간을 단축

    Monitor

    최초의 OS, 항상 Memory에 load되어 상주해 있음

    JCL

    Job Control Language

    일들을 관리하기 위한 언어

    JCL을 통해 Job to Job Transition 자동화

    요구사항

    1. Memory Protection OS인 Monitor가 점유하고 있는 공간을 침범하는 것을 막아야 함
    2. System Timer 한 개의 작업이 독점하지 못하도록 System Timer가 필요함
    3. 특권 Instructions 오직 Monitor를 통해서만 실행될 수 있는 명령어들이 있어야 함

      I/O Instruction들은 특권 Instruction임

    4. I/O Device Controller
    5. Interrupt 처리
      • Synchronous I/O : 프로그램이 I/O의 결과에 종속되어 기다림
      • Asynchronous I/O : 프로그램이 I/O에 종속되지 않음

        => Asynchronous I/O는 Interrupt를 이용해 병렬적으로 처리 가능하나 Synchronous I/O는 기다려야 함

        문제점

    6. Card 읽는게 느림
    7. CPU가 자주 놀았음 (Synchronous한 I/O 때문)
  3. Multiprogrammed Batch System

    이전까지는 Uni-Programming이었음

    => 메모리에 하나의 Program만 적재

    이제 메모리에 여러개의 Program을 올려서 Idle한 시간을 줄여 CPU 활용을 높이는 것이 목표

    Multi Processing으로 CPU관점에서 여러개의 작업이 병행적으로 처리됨

    요구사항

    1. Relocation 여러 프로그램이 올라옴에 따라 Boundary가 없어짐

      => 프로그램이 어디서 실행될 지 알 수가 없음

      => Disk에 Swap Area 확보해두고, 다른 프로그램을 메모리에 올릴 때 안쓰는 걸 Swap Area로 넣음

    2. Memory Protection 프로그램들 간 메모리 영역 침범이 생기지 않도록 해야 함

    3. MMU Memory Management Unit

      Logical 주소를 Main Memory의 Physical 주소로 Instruction 실행 시에 변환하는 것이 필요함 이를 처리하는 Unit

  4. Time Sharing

    인적 자원을 보다 효율적으로 사용하고자 하며, 다수의 상호작용하는 Job들을 다룰 수 있어야 함

    Processor 사용 시간을 여러 User들끼리 나눔

    같은 Machine을 여러 User들끼리 나누므로 Switching이 빈번하게 일어날 것이며, Job별로 Time Slice가 할당되어야 함

    문제점

    시스템 시간을 계속 체크하면서, Time Slice를 다 썼는지 확인해야 함

    구분Batch Multi ProgrammingTime Sharing
    목적Processor 사용률 극대화Response Time 최소화
    OS 접근JCLTerminal의 Command

OS 진화하면서 생긴 변화

  1. Process CPU를 나눠쓰기 시작함
  2. Memory Management MMU 등을 이용하면서 메모리 침범을 하지 않는 등
  3. Information Protection and Security 특권 모드 등
  4. Schedulig and Resource Management
  5. System Structure

OS 범주

  • Kernel

    Memory에 항상 상주하고 있는 OS의 일부분 함수들의 집합으로 구성됨

    함수들은 근본적인 메커니즘을 제공

    (ex : Process 관리, 동기화, CPU 스케쥴링, 메모리 관리 등)

    이러한 제공되는 Service들을 System Call이라고 함

  • Utility

    디스크에 있는 OS의 일부분 커널을 제외한 부분 필요에 따라 disk에서 load됨

    • System Utility

      System이 만듦

      컴퓨터 프로그램에 필요한 핵심적인 것

    • User Utility

      사용자가 만든 것

  • Shell

    System Utility 중 Special한 Utility

    사용자의 명령어를 실행하는 것

    사용자와 커널을 이어줌


© 2025. Na2te All rights reserved.