Post

KOCW_Introduction

✅ 운영체제

하드웨어를 편하게 사용할 수 있게 해주는 소프트웨어
하드웨어를 다루는 복잡한 부분은 운영체제가 담당해준다.
프로그램 입장에서는 혼자서 하드웨어를 쓰고 있다고 생각

  • 운영체제는 하드웨어와 다른 소프트웨어 또는 사용자를 연결해준다.
  • 컴퓨터가 부팅되면, 메모리에 올라간다.
  • 메모리에 상주하는 운영체제의 핵심 부분은 kernel이라고 한다.

Screenshot 2025-01-01 at 09 02 30

💡 커널

운영체제의 핵심 부분으로,
메모리에 상주하는 부분

✅ 운영체제의 목적

    1. 자원을 효율적으로 관리
      • 자원: CPU, 메모리, I/O장치, 소프트웨어 프로그램 등
      • 효율성: CPU는 한개인데 여러 프로그램에게 번갈아 할당, 프로그램입장에서는 내가 CPU를 독식하고 있다고 생각
      • 형평성: 특정/시용자 프로그램에 불이익 발생 방지


    1. 컴퓨터 시스템을 편리하게 사용할 수 있는 환경 제공
      • 하드웨어를 직접 다루는 복잡한 과정을 OS가 대신 해줌


    1. 악성 프로그램에 대해 사용자와 운영체제 자신을 보호

✅ 운영체제의 기능

  • 컴퓨터가 부팅되면, 운영체제는 메모리에 올라가 상주, 커널모드
  • CPU가 파일을 읽어올 것이 필요하면, I/O입력장치의 CPU에게 요청
  • CPU 스케쥴링: 운영체제는 어떤 프로그램에게 CPU를 줄까?
    • 한정된 시간동안만 주기
    • 일정 시간이 지나면 다시 빼앗아오기
  • 메모리 관리: 한정된 메모리를 어떻게 쪼개서 쓰지? OS가 관리
  • 디스크 스케쥴링: 디스크에 들어온 요청을 OS는 어떤 순서로 처리할까?
  • 인터럽트, 캐싱: 빠른 CPU와 느린 I/O장치 간 속도차를 어떻게 극복하지?
    • 캐싱: 메모리와 디스크 사이에 속도 차이가 나니까, 디스크에서 자주 요청되는건 메모리에 캐시로 저장
    • 인터럽트:
      • CPU는 디스크에 프로그램 A에 필요한 파일 요청
      • CPU는 빠르기 때문에 디스크에서 파일 읽어오는 동안 프로그램 B실행
      • 파일 읽어오는 게 끝나면 디스크는 CPU에게 인터럽트
      • CPU는 인터럽트가 들어오면 운영체제에게 간다.
      • 운영체제는 계속 인터럽트 들어온게 없는지 확인, CPU에게 다음 할 일 주기
      • 결론: CPU는 쉬지 말고 일하고, 운영체제가 일 순서 관리

✅ 운영체제의 분류

☑️ 동시작업 가능 여부

  • ✔️ single tasking
    • 한 번에 단 하나의 작업만 가능


  • ✔️ multitasking
    • 동시에 두 개 이상 작업 가능
    • scheduling의 필요성

☑️ 사용자의 수

  • ✔️ single user
    • MS Windows


  • ✔️ multi user
    • 한 대의 컴퓨터에 여러명이 터미널로 접속
    • UNIX, NT server

☑️ 처리 방식

  • ✔️ batch processing 일괄 처리
    • 작업 요청의 일정량을 모아서 한꺼번에 처리
    • 작업 완전 종료될 때까지 기다려야 함
    • 키보드에 입력하면 바로 나오는게 아니라❌ 어느정도 쌓이면 출력


  • ✔️ time sharing 시분할
    • 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정 시간 단위로 분할해서 사용
    • 일괄처리에 비해 빨리 응답
    • 자원을 프로세스에게 나눠줌
    • 우리가 사용하는 OS
    • UNIX
    • interactive한 방식


  • ✔️ realtime OS
    • 정해진 시간 deadline안에 프로세스를 종료해야 함
    • deadline을 어기면 큰 문제가 생김
    • 원자로 제어 / 공장 제어 / 미사일 제어

✅ 프로세스의 상태

프로세스: 실행중인 프로그램
큐: 큐를 만들어서 프로그램들이 실행되기를 기다리기

1
2
3
4
5
- CPU에서 실행되다가 디스크에서 파일 읽어올게 필요하면
- CPU에서 쫒겨남
- 디스크 큐로 가서 기다림
- 입출력 작업 끝나면 인터럽트
- 다시 CPU큐에서 기다림

🆚 Multi

  • Multitasking: 여러개의 프로그램을 동시에 돌린다
  • Multiprogramming: 메모리 측면 강조, 메모리에 여러 프로그램이 동시에 올라가 있다
  • Time Sharing: CPU가 짧은 시간 간격으로 여러 프로그램을 처리한다. CPU의 시간을 분할해서 나누어 쓴다.

  • Multiprocessor: 하나의 컴퓨터에 여러개의 CPU가 붙어있다.

✅ 운영체제의 종류

  • ✔️ UNIX
    • 서버를 위한 운영체제
    • 최소한의 커널 구조, 가벼움
  • ✔️ DOS
    • Disk Operating System
    • 단일 사용자 위해서 만들어짐
    • MS 전 버전
  • ✔️ MS Windows
This post is licensed under CC BY 4.0 by the author.