- 운영체제의 기능
- CPU 스케쥴링
- 대부분의 프로그램은 CPU(기계어 실행) ↔ 입출력 디바이스(디스크, 키보드, 프린터, 모니터 등) 과정 반복 실행
- FCFS(First Come First Served): 어떤 프로세스가 먼저 왔냐에 따라 평균 대기 시간이 비효율적
- SJF(Shortest Job First): CPU 사용시간이 가장 짧은 프로세스 순으로 스케쥴 -> 최소 평균 대기 시간 보장
- Starvation(기아 현상) 발생 가능: 이론적으로 영원히 CPU를 사용하지 못하는 프로세스가 생길 수도 있다
- RR(Round Robin): 각 프로세스에 동일한 CPU 사용시간 할당
- 할당 시간 종료 후 인터럽트(하드웨어 관여) 발생 -> CPU를 빼앗기고 CPU 큐의 맨 뒤에 줄을 섬
- 대기 시간이 프로세스의 CPU 사용시간이 비례, n개의 프로세스가 대기할 때 (n-1)*할당시간 이상 대기 X
- 메모리 관리
- 디스크에서 파일 실행 -> 가상 메모리에 프로세스 메모리를 형성 -> 실제 물리 메모리에 가상 메모리 중 당장 필요한 부분 올림(메모리 낭비 방지)
- 스왑 영역: 메모리에서 쫓겨난 프로세스(단위: 페이지) 보관
- 디스크: 비휘발성, 메모리: 휘발성 (파일시스템만 전원 종료해도 의미있음)
- CPU가 페이지 요청 시 메모리에 있는지 확인 후 없으면 디스크에 요청 -> 해당 프로세스가 메모리에 올라감
- 메모리가 꽉차면 새로운 페이지를 메모리에 보관하기 위해 추후에 가장 실행이 적게 될 것 같은 페이지 삭제
- LRU: 가장 오래 전에 참조한 페이지 삭제
- LFU: 참조 횟수가 가장 적은 페이지 삭제
- 디스크 스케쥴링
- 디스크는 회전하고 헤드가 이동하며 요청받은 트랙의 데이터를 읽는다
- 디스크 접근 시간
- 탐색 시간(Seek time): 헤드를 해당 트랙(실린더)으로 이동하는데 걸리는 시간
- 회전지연(Rotational latency): 헤드가 원하는 섹터(데이터 저장위치)까지 도달하는데 걸리는 시간
- 전송시간(Transfer time): 실제 데이터 전송 시간
- 디스크 접근 시간 중 헤드 이동 시간이 가장 많이 소요됨 -> 헤드 이동 시간을 줄이는 것이 관건
- FCFS: 선착순 -> 비효율적
- SSTF(Shortest Seek Time First): 현재 헤드 위치에서 이동 거리 가장 짧은 순으로 이동하는 것 반복
- starvation 문제 (형평성 문제)
- Scan: 헤드가 디스크의 양쪽 끝을 반복 이동하며 가는 길목에 있는 모든 요청 처리
- 캐싱(caching): 더 빠른 저장장치에 데이터를 복사하고 다시 요청 받으면 그 장치에서 처리
- 위 계층 일수록 비싸고, 저장용량이 적으며, 휘발성이다
- primary: CPU가 직접 접근 가능(컴퓨터 내부), secondary: primary에 올려놓아야 CPU가 접근 가능(I/O 장치들)
- 계층을 두는 이유: 속도 완충 작용
※ 플래시 메모리: 반도체 장치 (하드디스크: 메그네틱)
- NAND형(스토리지), NOR형(임베디드 코드 저장용)
- 특징:
- 비휘발성
- 적은 전력 소모
- 물리적인 충격에 강함
- 작은 사이즈
- 가벼움
- 단점: 쓰기 횟수 제약, 데이터 변질 가능성 등 -> 소프트웨어로 완충
- 사용 형태: 모바일, USB 등 작은 기기 -> 대용량 시스템에서 SSD로 하드디스크 대체 시도
- 운영체제의 종류: 서버용, PC용, 스마트디바이스용
- 공개 소프트웨어: 리눅스, 안드로이드
출처: http://www.kocw.net/home/cview.do?lid=8a85bc6d5e6b1b83
'CS > OS' 카테고리의 다른 글
5. Process1 (0) | 2022.03.07 |
---|---|
4. System Structure & Program Execution 2 (0) | 2022.03.04 |
3. System Structure & Program Execution 1 (0) | 2022.03.04 |
2. Introduction to Operating Systems (0) | 2022.03.02 |
1. OS 개요 (0) | 2022.03.01 |
- 운영체제의 기능
- CPU 스케쥴링
- 대부분의 프로그램은 CPU(기계어 실행) ↔ 입출력 디바이스(디스크, 키보드, 프린터, 모니터 등) 과정 반복 실행
- FCFS(First Come First Served): 어떤 프로세스가 먼저 왔냐에 따라 평균 대기 시간이 비효율적
- SJF(Shortest Job First): CPU 사용시간이 가장 짧은 프로세스 순으로 스케쥴 -> 최소 평균 대기 시간 보장
- Starvation(기아 현상) 발생 가능: 이론적으로 영원히 CPU를 사용하지 못하는 프로세스가 생길 수도 있다
- RR(Round Robin): 각 프로세스에 동일한 CPU 사용시간 할당
- 할당 시간 종료 후 인터럽트(하드웨어 관여) 발생 -> CPU를 빼앗기고 CPU 큐의 맨 뒤에 줄을 섬
- 대기 시간이 프로세스의 CPU 사용시간이 비례, n개의 프로세스가 대기할 때 (n-1)*할당시간 이상 대기 X
- 메모리 관리
- 디스크에서 파일 실행 -> 가상 메모리에 프로세스 메모리를 형성 -> 실제 물리 메모리에 가상 메모리 중 당장 필요한 부분 올림(메모리 낭비 방지)
- 스왑 영역: 메모리에서 쫓겨난 프로세스(단위: 페이지) 보관
- 디스크: 비휘발성, 메모리: 휘발성 (파일시스템만 전원 종료해도 의미있음)
- CPU가 페이지 요청 시 메모리에 있는지 확인 후 없으면 디스크에 요청 -> 해당 프로세스가 메모리에 올라감
- 메모리가 꽉차면 새로운 페이지를 메모리에 보관하기 위해 추후에 가장 실행이 적게 될 것 같은 페이지 삭제
- LRU: 가장 오래 전에 참조한 페이지 삭제
- LFU: 참조 횟수가 가장 적은 페이지 삭제
- 디스크 스케쥴링
- 디스크는 회전하고 헤드가 이동하며 요청받은 트랙의 데이터를 읽는다
- 디스크 접근 시간
- 탐색 시간(Seek time): 헤드를 해당 트랙(실린더)으로 이동하는데 걸리는 시간
- 회전지연(Rotational latency): 헤드가 원하는 섹터(데이터 저장위치)까지 도달하는데 걸리는 시간
- 전송시간(Transfer time): 실제 데이터 전송 시간
- 디스크 접근 시간 중 헤드 이동 시간이 가장 많이 소요됨 -> 헤드 이동 시간을 줄이는 것이 관건
- FCFS: 선착순 -> 비효율적
- SSTF(Shortest Seek Time First): 현재 헤드 위치에서 이동 거리 가장 짧은 순으로 이동하는 것 반복
- starvation 문제 (형평성 문제)
- Scan: 헤드가 디스크의 양쪽 끝을 반복 이동하며 가는 길목에 있는 모든 요청 처리
- 캐싱(caching): 더 빠른 저장장치에 데이터를 복사하고 다시 요청 받으면 그 장치에서 처리
- 위 계층 일수록 비싸고, 저장용량이 적으며, 휘발성이다
- primary: CPU가 직접 접근 가능(컴퓨터 내부), secondary: primary에 올려놓아야 CPU가 접근 가능(I/O 장치들)
- 계층을 두는 이유: 속도 완충 작용
※ 플래시 메모리: 반도체 장치 (하드디스크: 메그네틱)
- NAND형(스토리지), NOR형(임베디드 코드 저장용)
- 특징:
- 비휘발성
- 적은 전력 소모
- 물리적인 충격에 강함
- 작은 사이즈
- 가벼움
- 단점: 쓰기 횟수 제약, 데이터 변질 가능성 등 -> 소프트웨어로 완충
- 사용 형태: 모바일, USB 등 작은 기기 -> 대용량 시스템에서 SSD로 하드디스크 대체 시도
- 운영체제의 종류: 서버용, PC용, 스마트디바이스용
- 공개 소프트웨어: 리눅스, 안드로이드
출처: http://www.kocw.net/home/cview.do?lid=8a85bc6d5e6b1b83
'CS > OS' 카테고리의 다른 글
5. Process1 (0) | 2022.03.07 |
---|---|
4. System Structure & Program Execution 2 (0) | 2022.03.04 |
3. System Structure & Program Execution 1 (0) | 2022.03.04 |
2. Introduction to Operating Systems (0) | 2022.03.02 |
1. OS 개요 (0) | 2022.03.01 |