/ OS

OS(1) - Introduction

OS 관련 포스팅

운영체제(Operating System, OS)의 목적

  1. 컴퓨터 하드웨어를 잘 관리하여
    • HW: processor, memory, disk, keyboard, mouse, monitor…
    • OS가 메모리에 올라오면 User가 컴퓨터를 제어할 수 있게 됨
  2. 성능을 높이고
    • 같은 HW라도 OS가 좋으면 성능이 향상됨
  3. 사용자에게 편의성을 제공
    • 컴퓨터를 몇 번만 사용해보면 누구나 쉽게 사용할 수 있음
    • 과거, 1940s-1950s에는 전문가(oprator)들만 컴퓨터를 사용할 수 있었음

부팅(Booting)

boot: n. 목이 긴 신발, 부츠
booting: 부츠를 끌어당겨 신는 것처럼 OS를 메인 메모리로 끌어당김

  1. 전원을 켜면
  2. ROM의 code를 읽어와 실행
    • ROM: Read Only Memory
    • RAM: main memory의 대부분을 차지(수GB(10^9))
  3. POST(Power-On Self-Test) 실행
    • 전원을 켰을 때, 컴퓨터의 환경 설정이 제대로 되었는지 확인
  4. Boot loader실행
    • load: v.적재하다
    • 하드 디스크 안의 OS를 메인 메모리로 가져옴
  5. OS가 메인 메모리(RAM)에 올라오면, 명령을 받아들일 준비를 마침
    • Windows의 경우 바탕화면이 뜨고, Linux의 경우 prompt 창이 뜸

OS = kernel + shell

  • Kernel
    • 핵심
    • HW를 둘러싸며 이를 제어, 관리함
    • 실제로 관리하는 프로그램
  • Shell
    • OS의 껍질 부분
    • 명령어 해석기(command interpreter)
    • 사용자로부터 명령을 받아 변역 후 해당 명령을 실행함
    • 명령: 아이콘 더블 클릭(Windows), 텍스트 입력(Linux $ls(현 directory file 보여줌), $who(사용자 확인), $ds(디스크 용량 확인) 등)

OS의 위치

  • Application(App) ⊃ OS ⊃ HW os diagram
  • 정부(government)에 비유할 수 있음
  • 주어진 자원을 할당(resource allocator)하고 관리함(resource manager)
  • OS가 직접 일을 하지 않고, 각 부서에 맞는 업무를 할당함
  • 프로세스 관리와 메인 메모리 관리가 가장 중요한 업무

역사

  1. 컴퓨터의 역사
    • 1940s, OS가 없었음
    • programmer가 종이에 연필로 program을 작성해 전산실에 전달
    • 전달받은대로 구멍(천공)을 뚫은 카드와 compiler 프로그램 카드를 카드 리더기에 올림
    • 프로그램과 compiler가 메모리에 적재되고 기계어가 도출됨
    • 처리기(processor)가 기계어를 실행하면
    • line printer가 망치로 두드려 결과를 인쇄
  2. Batch processing system(일괄처리)
    • resident monitor: 최초의 OS
    • 사람(operator)이 직접 compiler, linker, loading을 했음
    • 이 일련의 과정을 메모리에 프로그램으로 넣어(=상주시켜) 자동으로 실행시킴
  3. Multiprogramming system(다중 프로그래밍)
    • 컴퓨터는 비싼 자원
    • CPU에 비해 i/o의 처리 속도는 느리며, i/o 처리 시간 동안 CPU는 idle상태(가동되지 않는)가 됨
    • i/o 처리시 다음 user의 연산을 처리
    • 하나의 CPU를 여러 user(program)가 사용해 이용률을 증가시킴
    • user program의 효율적인 배치를 고민해야 함
  4. Time-sharing system(시공유 시스템)
    • 아주 짧은 시간(1/100초~1/1000초)동안 각 user의 작업을 나눠서 처리
    • 혼자서 CPU를 쓰는 느낌을 줄 수 있음

OS 기술 천이

  • 컴퓨터 규모별 분류
    • Supercomputer > Mainframe > Mini > Micro
      Supercomputer: 최강의 컴퓨터. 메모리 용량이 크고, CPU가 빠르며, 보조 기억장치가 뛰어남
      Mainframe: 수백 대의 단말기를 연결한 형태
      Mini: 수십 대의 단말기를 연결한 형태

    • Supercomputer > Server > Workstation > PC > Handheld > Embeded
      Handheld: 노트북, 태블릿, 스마트 폰
      Embeded: 차나 가전에 내장된 형태

  • 고성능 컴퓨터의 기능이 Handheld, Embeded까지 적용됨

고등 운영체제

(※대학원 과정)

  • 다중 프로세서 시스템
  • 분산 시스템
  • 실시간 시스템