[개발 정리]/[OS]

Introduction to Operating Systems

hskimim 2024. 11. 19. 00:06

kocw 강의 : 이화여자대학교 반효경 교수님의 운영 체제 강의, 1강 Introduction to Operating Systems

 

OS

os 는 hw 바로 위에 있는 sw, 다른 모든 sw를 hw 와 연결

  • 좁은 의미 : kernel -> 메모리 상주하는 부분
  • 넓은 의미 : kernel + other utilities

Role

  • computer system 의 자원을 효율적으로 관리
    • optimal performance given resources
    • sw 자원도 관리해야 함 (process, file, msg etc)
  • 사용자가 computer 를 편리하게 사용하게 해줌
    • fair resource allocation
    • 여러 program이 동시에 돌 수 있게
      • cpu 가 빠른 속도로 번갈아 실행
      • memory 공간에 적절히 분배

Classification

  • 동시 작업 가능 여부
    • 가능 : unix, ms windows (일반적)
    • 불가능 : ms-dos
  • 사용자 수
    • 단일 : ms-dos, ms-windows
    • 다중 : unix, nt server (일반적)
  • 처리 방식
    • batch processing :
      • 일을 모아서 처리
      • ex) punch card
    • time sharing : (일반적)
      • 컴퓨터 처리 능력을 시간 단위로 분할
      • 시간을 보장하는 system 은 아님, 동시에 해야할 일이 많으면 느려짐
      • ex) unix, 현대 대부분의 os
    • real-time processing : 
      • 정해진 시간 안에 어떤 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 os
      • dependency 의 염격성에 따라, hard/soft 로 확장됨
      • ex) 특수 목적 시스템

유사한 용어 정리

  • Multitasking : CPU는 한번에 하나의 일만 가능하지만 빠르게 일을 스위치, 동시에 실행되는 것처럼 보이지만, 하나의 프로그램이 끝나기 전에 다른 프로그램이 시작
  • Multiprogramming : 메모리에 여러 프로그램이 동시에 올라가는 것, 메모리 측면을 강조
  • Time Sharing : CPU의 시간을 분할하여 나누어 쓴다, CPU 측면을 강조
  • Multiprocess : 여러 프로그램이 동시에 돈다
  • Multiprocessor : 이건 개념이 좀 다름. 하나의 컴퓨터에 CPU (processor) 가 여러 개 붙어 있음을 의미

OS의 예

  • UNIX
    • 대부분 C 언어로 작성
    • 프로그램 개발에 용이
    • 최소한의 커널 구조
    • 높은 이식성
    • 높은 확장성
  • DOS (Disk Operating System)
    • 단일 사용자용 os, 메모리 관리 능력의 한계 (주 기억 장치 : 640KB)
  • MS Windows
    • 다중 작업용 GUI 기반 운영 체제
    • 풍부한 지원 소프트웨어

OS의 개괄적 구조

이미지 출처 : kocw 본 강의

  • CPU : 누구에게 CPU를 줄까?
    • cpu scheduling
    • 짧은 간격으로 줬다 뺏었다 함
  • Memory : 한정된 메모리를 어떻게 쪼개어 쓰지?
    • memory management
    • 어떤 프로그램에게 얼만큼 줘야 할까?
    • working set model 이라는게 있음, 너무 많은 program 이 동시에 실행되려고 하면 일부 program 만 memory 에 올리고 나머지는 disk 에 내려서 누구에게 집중시켜주는, 올렸다 내렸다 하는 그런게 있음. 나중에 배움
    • 누굴 올리고 내려? -> 최근에 많이 사용된 얘를 물고 있고, 많이 안물고 있는 얘들은 disk 로 쫓아낸다~ 뭐 나중에 배운다고 함
  • Disk : 디스크에 파일을 어떻게 보관하지?
    • File management
    • disk 란 head가 움직이면서 읽고 쓰는거라고 함
    • 얘도 scheduling 이 필요하다고 함.
      • head의 이동을 줄이게끔 scheduling 이 있다고 함 (엘레베이터랑 비슷)
    • cpu scheduling 이랑은 성격이 다름
      • cpu 는 너무 빨라서 이걸 어떻게 관리하는가
      • disk 는 어떻게 head의 움직임을 최소화하는가.
  • I/O Device : 각기 다른 입출력장치와 컴퓨터 간에 어떻게 정보를 주고 받게 하지?
    • I/O management
    • Interrupt 에 기반해서 관리를 한다.
    • cpu 는 겁나 빨라서 항상 자기 할 일을 하고 있음
    • I/O 가 할 일이 있으면 cpu 를 interrupt 를 해서 뭘 알려줌. 잘 모르겠음 지금은.
  • 프로세스 관리
    • 프로세스의 생성과 삭제
    • 자원 할당 및 반환
    • 프로세스 간 협력