Mathlife
Mathlife의 학습 노트
Mathlife
전체 방문자
오늘
어제
  • 분류 전체보기
    • CS
      • 알고리즘
      • 자료구조
      • 운영체제
      • 네트워크
      • 데이터베이스
    • 프로그래밍 언어
      • Java
      • JavaScript
      • C·C++
      • Python
    • Backend
      • Spring
    • Frontend
      • HTML
      • CSS
    • Math
      • Linear Algebra
      • Calculus
    • AI
      • ML
      • DL
      • RL
    • Git

블로그 메뉴

  • 홈
  • 관리
  • 글쓰기
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Mathlife

Mathlife의 학습 노트

CS/운영체제

운영체제 개요

2022. 5. 8. 05:29

출처 : KMOOC / 운영체제 / 이화여대 반효경 교수님

 

사용자

ㅡㅡㅡ

  SW  | 사용자

ㅡㅡㅡㅡㅡㅡㅡ

운영체제

ㅡㅡㅡㅡㅡㅡㅡ

하드웨어

 

운영체제란 사용자가 하드웨어에 대해 잘 몰라도 컴퓨터를 편하게 사용할 수 있게 알아서 메모리 등을 관리해주는 소프트웨어

 

운영체제의 목적

- 멀티 쓰레드 : 여러 프로그램을 번갈아가면서 실행해서 자신만 실행되고 있는 것처럼 착각하게 함

- 자원의 효율적 관리 $\leftarrow$ 이게 핵심!

 

컴퓨터 시스템의 구조

내부 : CPU, 메모리

I/O 디바이스 : 디스크, 키보드, 마우스, 모니터 등

 

운영체제의 기능

- CPU 스케줄링

- 메모리 관리

- 디스크 스케줄링

- 인터럽트, 캐싱 : 빠른 CPU와 느린 I/O 장치간의 속도차 극복

 

CPU 스케줄링

Process   사용시간

$P_1$            24

$P_2$             3

$P_3$             3

 

FCFS (First-Come First-Served)

대기 시간 : 0, 24, 27

평균 대기 시간 : 17

 

형평성은 좋지만 효율성 $\downarrow$

평균 대기 시간이 너무 길다

 

SJF (Shortest-Job-First)

대기 시간 : 0, 3, 6

평균 대기 시간 : 3

 

효율성은 좋지만 형평성 $\downarrow$

평균 대기 시간을 최소화하지만 starvation 발생 가능

 

RR (Round-Robin)

CPU 할당시간을 고정

할당시간이 끝나면 인터럽트가 발생하여 프로세스는 CPU를 빼앗기고 CPU 큐의 맨 뒤에 줄서게 됨

 

메모리 관리

LRU (Least Recently Used)

가장 오래 전에 참조한 페이지 삭제 

 

LFU (LEast Frequently Used)

참조 횟수가 가장 적은 페이지 삭제

 

물론 둘 다 장단이 있다

 

디스크 스케줄링

 

디스크 헤드 이동을 최대한 줄이면서 처리해야 함

 

디스크 접근 시간

 

탐색 시간 (Seek time)

- 헤드가 해당 트랙(동심원)으로 움직이는 시간

- 가장 많은 시간을 차지

 

회전 지연 (Rotational latency)

- 헤드가 원하는 섹터(동심원 내의 위치)에 도달하기까지 걸리는 시간

- 다음으로 많은 시간을 차지 

 

전송 시간 (Transfer time)

- 실제 데이터의 전송 시간

- 상대적으로 매우 짧은 시간

 

디스크 스케줄링은 seek time을 최소화하는 것이 목표!

 

FCFS (First-Come First-Served)

- 당연히 비효율적

 

SSTF (Shortest Seek Time First)

- 현재 위치에서 헤드 이동이 가장 적은 트랙부터 방문

- 마찬가지로 starvation 발생 가능

 

SCAN

- 헤드가 한쪽 끝에서 다른쪽 끝으로 이동을 반복하면서 가는 길에 있는 모든 요청 처리

 

캐싱

레지스터

- CPU 안에 있는 아주 작은 저장 공간이 있다.

캐시 메모리 (Cache Memory)

- CPU와 메인 메모리의 속도 차이를 완충

- 메인 메모리에 있는 데이터를 캐시 메모리에 불러와 두고, 프로세서가 필요한 데이터를 캐시 메모리에서 먼저 찾도록 하면 시스템 성능을 향상

 

(위로 갈수록 빠르고, 비싸고)

레지스터 in CPU (휘발성)

캐시 메모리(휘발성)

메인 메모리(DRAM) (휘발성)          primary(Executable : cpu가 직접 접근 가능)

------------------------------------------------------------

여러 계층의 디스크 (비휘발성)        secondary

 

플래시메모리

- 비휘발성

- 당연히 원판 없으니 크기도 작고 가볍고 전력 소모도 적고 물리적인 충격에도 강하다 

- 처음엔 모바일 기기 등에만 쓰이다가 SSD로 쓰이기 시작하면서 HDD 대체중

- 스마트폰, 태블릿, USB 등 임베디드 시스템 등에 많이 사용

- 쓰기 횟수 제약이 있고 데이터가 변질될 가능성이 있는게 단점이지만 이를 극복하기 위한 여러 방법이 있음

 

SSD : 안에 플래시 메모리가 들어가 있는 반도체식 저장 장치 (전하를 저장)

HDD : 기계식 저장 장치

 

운영체제의 종류

공개 소프트웨어 : Linux, Android (소스코드가 공개)

 

서버용 : Linux

PC용 : windows, Mac OS, Linux

스마트 디바이스용 : ios, android(Linux 커널이 들어가 있음)

 

운영체제

좁은 의미의 운영체제 (커널)

- 운영체제의 핵심 부분으로 메모리에 상주하는 부분인 커널만을 의미

 

넓은 의미의 운영체제

- 커널 뿐만 아니라 파일 복사 등 각종 시스템 유틸리티(실행파일)도 포함한 개념

 

운영체제의 분류

동시 작업 가능 여부

단일 작업 : MS-DOS 등

다중 작업 : UNIX, Windows, Mac OS 등

 

사용자의 수

단일 사용자 : MS-DOS, Windows 등

다중 사용자 : UNIX 등

 

처리 방식

일괄 처리 (batch processing)

- 초기 펀치 카드 시스템

시분할 (time sharing)

- 시간을 분할해서 여러 프로그램이 번갈아가면서 사용

실시간 (Realtime)

- 원자로, 미사일, 반도체 등 데드라인을 반드시 지켜야하는 시스템을 위한 OS

 

이 수업에서는 다중 작업, 다중 사용자, 시분할 운영체제를 가정한다

 

용어

아래의 용어는 전부 같은 뜻이지만 다른 맥락에서 사용하는 것 뿐이다.

 

Multi-tasking, Multi-process : 여러 작업을 동시에 수행한다

Multi-programming : 메모리에 여러 프로그램이 올라가 있다는 점을 강조

Time sharing : 시간을 분할해 CPU를 나누어 쓴다는 점을 강조

 

주의

Multi-processor : 하나의 컴퓨터에 CPU(processor)가 여러 개 붙어 있음을 의미

 

운영체제의 예

유닉스

- 서버를 위한 운영체제

- 코드 대부분을 C언어로 작성

- Linux도 유닉스의 variation

 

DOS (Disk Operating System)

- 단일 사용자용, 단일 작업용

 

Windows

- 단일 사용자용, 다중 작업용

- 요즘은 체감은 잘 안되겠지만 유닉스에 비하면 상대적으로 불안정

 

이 밖에 android, ios 등도 os로 보기도 한다 (sw 플랫폼으로 보기도 한다).

 

'CS > 운영체제' 카테고리의 다른 글

Process Synchronization II  (0) 2022.05.14
Process Synchronization I  (0) 2022.05.14
CPU 스케줄링  (0) 2022.05.14
프로세스 관리  (0) 2022.05.09
컴퓨터 시스템의 구조  (0) 2022.05.08
    'CS/운영체제' 카테고리의 다른 글
    • Process Synchronization I
    • CPU 스케줄링
    • 프로세스 관리
    • 컴퓨터 시스템의 구조
    Mathlife
    Mathlife

    티스토리툴바