운영체제
: 컴퓨터의 사용자와 하드웨어 사이에서 중개자 역할을 해주는 프로그램
운영체제 목적
: 컴퓨터 시스템 자원 효율적 관리
- 하드웨어 자원 : 프로세서, 기억장치, 입출력장치 등의 효율적 관리
- 사용자간 형평성 있는 자원 분재 :형평성
- 주어진 자원으로 최대 성능 도출 : 효율성
- 사용자 및 운영체제 자신의 보호
- 소프트웨어 자원: 프로세서, 파일, 메시지 관리
: 편리하게 사용할 수 있는 환경 제공
- 운영체제는 동시 사용자/프로그램들이 각각 독자적 컴퓨터에서 수행되는 것 같은 환상 제공
- 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행
운영체제 분류
동시 작업 가능 여부 / 사용자 수 / 처리 방식
동시 작업 가능 여부
- 단일 작업 (single tasking)
: 한번에 하나의 작업 처리
- 다중 작업 (multi taskiing)
:동시에 두 개 이상의 작업처리
사용자 수
- 단일 사용자 (single user)
- 다중 사용자 (multi user)
처리 방식
- 일괄처리 (batch processing)
- 바로바로 되는 게 아니라 작업 요청의 일정량을 모아서 한꺼번에 처리
- 작업이 완전히 종료될 때까지 기다려야 함
- 시분할 (time sharing)
- 우리가 주로 사용
- 여러 작업 수행 시 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용
- 일괄 처리 시스템에 비해 짧은 응답시간 가짐 : interactive한 방식
3-1. 실시간 (realtime OS)
- 특수한 목적을 가진 컴퓨터에서 사용
- 정해진 시간 안에 어떤 일이 반드시 종료됨이 보장되어야하는 실시간 시스템을 위한 OS
- eg. 원자로/공장 제어, 미사일 제어, 반도체 장비, 로보트 제어
3-2. 실시간 시스템 개념 확장
- hard realtime system 경성 실시간 시스템
- sofe realtime system 연성 실시간 시스템 : 데드라인이 있지만 치명적인 영향을 끼치지는 않는 것
용어 정리
-
Multitasking
-
Multiprogramming : 여러 프로그램이 메모리에 올라가 있음을 강조
-
Time sharing : CPU의 시간을 분할해 나누어 쓴다는 의미 강조
-
Multiprocess
: 컴퓨터에서 여러 작업을 동시에 수행하는 것을 의미함
-
✨ Multiprecessor : 하나의 컴퓨터에 CPU(processor)가 여러 개 붙어 있음을 의미 (고성능 컴퓨터)
운영체제 예시
- 유닉스 : for 대형컴퓨터
- 코드 대부분 C언어로 작성 : assembly 언어라 어려움을 보완
- 높은 이식성
- 최소한의 커널 구조 : 핵심적인 기능만 넣어둠
- 복잡한 시스템에 맞게 확장 용이
- 소스코드 공개 : 지금은 비공개
- 프로그램 개발 용이
- 윈도우 : for 개인용 컴퓨어 (PC)
2-1. DOs (Disk Operating System)
- MS사에서 1981년 IBM-PC를 위해 개발
- 단일 사용자용 운영체제, 메모리 관리 능력 한계
2-2. MS Windows
- MS사의 다중 작업용 GUI기반 운영체제
- Plug & Play, 네트워크 환경강화
- DOS용 응용 프로그램과 호환성 제공
- 불안정성
- 풍부한 지원 소프트웨어
CPU 스케줄링
1. FCFS (First-Come First-Served)
: 순서대로 CPU 쓰게끔하는 것 = 공평하지만 효율적이지않음
: 그럼 이 과정을 효율적으로 하기 위해서는?

2. SJF(Shortest-Job-First)
: 금번 CPU 사용시간이 가장 짧은 프로세스를 제일 먼저 스케줄
: SJF는 minimum average waiting time 보장

: Problem
3. Round Robin (RR)
: 각 프로세스는 동일 크기의 CPU 미리 할당시간을 가짐 : CPU 번갈아 사용하게 됌
: 할당시간이 끝나면 인터럽트가 발생하여 프로세스는 CPU를 빼앗기고 CPU 큐의 제일 뒤에 줄을 섬
: n개 프로세스가 CPU 큐에 있는 경우
- 어떤 프로세스도 (n-1)*할당시간 이상 기다리지 않음
- 대기시간이 프로세스의 CPU 사용시간에 비례 : 본인이 사용하려는 양에 비례하게끔 기다리게 됌

메모리 관리

LRU
: 가장 오래 전 참조한 페이지를 삭제
LFU
: 참조횟수(=사용횟수)가 가장 적은 페이지 삭제
디스크
: 디스크에 저장된 정보를 디스크 헤드가 이동함을서 정보 리딩
디스크 접근 시간 (Access time) 구성

- 탐색시간 (Seek time)
: 헤드를 해당 트랙(실린더)으로 움직이는데 걸리는 시간
- 회전지연 (Rotational latency)
: 헤드가 원하는 섹터에 도달하기 까지 걸리는 시간
- 전송시간 (Transfer time)
: 데이터 실제 전송시간
디스크 스케줄링 (Disk Scheduling)

: seek tiem(~seek distanse) 최소화가 목표
1. FCFS
2. SSTF (Shortest Seek Time First)
: starvation 문제 있음
- SCAN
: 헤드가 디스크 한쪾 긑에서 다른쪽 끝으로 이동하며 가는 길목에 있는 모든 요청 처리
: 다른 한쪽 끝에 도달하면 역방향으로 이동하며 오는 길목에 있는 모든 요청을 처리하며 다시 반대쪽 끝으로 이동
저장장치 계층구조와 캐싱
플래시 메모리
플래시 메모리
: 반도체장치 (하드디스크:마그네틱)
: NAND형(스토리지) 주로 사용됌, NOR형(임베디드 코드 저장용)
플래시 메모리 특징
- Nonvolatile
- Low power comsumption
- Shock resistance
- Small size
- Lightweight
- 쓰기 횟수 제약
- 시간 지나면 전하량 빠져나감 : 정보리딩이 안될 수 있음
플래시 메모리 사용 형태
- 휴대푠, PDA등 임베디드 시스템 구성용
- USB용 메모리 스틱
- 디지털 카메라 등의 SD카드, Smart Media card
- 모바일 장치 뿐 아니라 대용량 시스템에서 SSD (Solid State Drive)란 이름으로 하드디스크 대체 시도
운영체제 종류
- 서버용, pc용
- 공개 소프트웨어 = 오픈 소스코드
why 오픈 소스코드로 했나? 시장논리에는 맞지않은데