[운영체제] 1. 운영체제 개요

서요이·2022년 10월 4일
0

운영체제

목록 보기
1/12
post-thumbnail

1. 운영체제 개요

운영체제(Operating System, OS)

  • 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 기술
  • 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공
    한 서버(컴퓨터)에 여러 사용자(프로그램)가 동시에 접속할 때 마치 혼자 서버를 사용하는 것 같은 환상 - 운영체제가 처리
  • 컴퓨터 시스템의 자원(CPU, 메모리 등)을 효율적으로 관리
    Resource Sharing - 실행중인 프로그램들에게 짧은 시간 CPU를 번갈아 할당, 한정된 메모리 공간 적절히 분배 → 효율성, 형평성

컴퓨터 시스템의 구조

컴퓨터 내부: CPU, 메모리
입출력(I/O) 디바이스: 디스크, 키보드, 프린터, 모니터
커널: 운영체제의 핵심 부분

메모리 - CPU의 작업 공간(CPU에서 매 clock 마다 메모리의 기계어를 읽어 연산 수행)
외부 장치 직접 접근 불가, I/O 컨트롤러에 요청

운영체제의 기능

  • CPU 스케줄링: 어떤 프로그램에게 CPU 사용권을 줄지 결정
  • 메모리 관리: 한정된 메모리를 어떻게 쪼개어 쓸지 결정
  • 디스크 스케줄링: 디스크에 들어온 여러 요청을 어떤 순서로 처리할지 결정 = 엘리베이터 스케줄링
  • 인터럽트, 캐싱: 빠른 CPU와 느린 I/O 장치간 속도차 극복

Interactive Application: CPU와 I/O 번갈아 사용
Scientific Application: I/O 작업 없이 CPU만 오래 사용

CPU 스케줄링

  • FCFS (First-Come First-Served)
    • 먼저 도착한 순서대로 프로세스 처리
    • 도착 순서에 따라 대기 시간의 variation 커짐
  • SJF (Shortest-Job-First)
    • CPU 사용시간이 가장 짧은 프로세스를 제일 먼저 스케줄
    • minimun average waiting time 보장
    • Starvation(기아 현상) 발생 - 형평성 문제
  • Round Robin (RR)
    • 각 프로세스 동일 크기의 CPU 할당시간을 가지고 할당 시간이 끝나면 인터럽트 발생하여 CPU 빼앗김
    • 대기시간이 프로세스의 CPU 사용시간에 비례 - 형평성
    • 최대 대기시간: (n-1) * 할당시간

메모리 관리

파일시스템에서 프로그램 실행 → 각 프로세스 가상 메모리 생성 → 필요한 부분만 메모리에 올림 → 메모리 가득 차면 스왑영역에 저장
컴퓨터 꺼지면 파일시스템은 살아 있지만 메모리는 자동적으로 사라짐
스왑영역도 비휘발성이지만 프로세스가 종료되었기 때문에 의미 없는 정보

  • LRU: 가장 오래 전에 참조한 페이지 삭제
  • LFU: 참조 횟수가 가장 적은 페이지 삭제

디스크 스케줄링

디스크 접근 시간 = 탐색 시간 + 회전 지연 + 전송 시간
디스크 헤드의 이동 최소화(탐색 시간 최소화)

  • FCFS (First-Come First-Served)
  • SSTF (Shortest Seek Time First)
    • 현재 위치를 기준으로 가장 가까운 곳으로 이동
    • Starvation - 형평성 문제
  • SCAN
    • 헤드가 디스크의 한쪽 끝에서 다른쪽 끝으로 이동하며 가는 길목에 있는 모든 요청을 처리 = 엘리베이터 스케줄링

저장장치 계층구조와 캐싱

CPU - Registers - Cache Memory - Main Memory - Disk
속도 차이를 완충하기 위해 계층구조 이용
캐싱: 빠른 저장 공간에 정보를 복사해 놓아서 디스크까지 내려가지 않고 재사용 가능

플래시메모리

비휘발성, 전력 소모 적음, 물리적인 충격에 강함, 작은 크기, 가벼움
→ 모바일 장치에서 쓰기 좋은 특징
→ 대용량 시스템에서 SSD라는 이름으로 하드디스크 대체 시도

한계: 쓰기 횟수 제한이 있음, 오랜 시간 지나면 데이터 변질 가능성 있음

운영체제의 종류

서버용, PC용, 스마트디바이스용 운영체제
공개 소프트웨어 (Open Source Software): Linux, Android

0개의 댓글