책추천(잔재미코딩)
http://www.yes24.com/Product/Goods/9253807 운영체제의 컨셉에 대해 설명하는 책. window와 연결고리가 없고 양이 방대해 전부 이해하기는 어려움. 필요시 네트워크 등 공부할 부분을 학습하는 식으로 쓰면 될 것 같다.
Operating System Concepts, 9/E - YES24
The ninth edition of Operating System Concepts continues to evolve to provide a solid theoretical foundation for understanding operating systems....
www.yes24.com
운영체제(OS)
* instruction set 이 os의 시초가 되었다.
(os가 instruction set을 제공x)
운영체제의 역할1:시스템자원 관리자
시스템자원 = 컴퓨터 하드웨어(cpu,memory, i/o devices, 저장매체(ssd,hdd))
==> 얼마나 cpu를 사용할지, 각 프로그램을 어디에 저장되야하는지, 메모리공간을 어느정도 확보할지, 입출력장치의 표시를 하는것까지...등의 역할을 함.
역할2: 사용자와 컴퓨터 간 연결(커널-인터페이스 제공)
역할3: 응용프로그램 제어
부가 여러 프로그램
1. 쉘 : 사용법을 제공('사용자가 어떻게 명령하면 컴퓨터를 구동할수 있다' 인터페이스를 제공)
터미널(CLI)과 GUI 두가지로 분류됨. (ex.리눅스 bash)
2.그 외 여러 application
-사용자모드: like주민. 응용프로그램이 사용(level 3)
-커널모드: like동사무소. os가 사용(level 0 = 아주 주요영역). 응용프로그램이 전체 컴퓨터시스템을 함부로 해치지 못하도록.
프로세스
메모리에 올려져서, 실행중인 프로그램.
-작업,task,job이라는 용어와 혼용됨.
1)배치 처리 시스탬: 여러 프로그램을 순차적으로 실행.(단점-많은 시간걸리는 프로그램있으면 기다리는게 오래 걸림)
2)시분할 시스템: 프로그램이 cpu를 점유하는 시간을 잘게 쪼개 실행시킴(최초 적용os: unix)
(pg1:1초 - pg2:1초 - pg3:1초 - pg1:1초 - pg2:1초 - pg3:1초 - pg1:1초 - pg2:1초 - pg1:1초 - pg1:1초)
3)멀티 태스킹: 단일cpu에서 여러 응용프로그램이 동시에 실행되는 것처럼 하는 시스템 => 10ms단위로도 실행하는 프로그램이 바뀌어 - 동시에 하는것처럼.
(알고리즘구현은 시분할과 같지만 목적이 다름)
1)멀티 프로그래밍: 최대한 cpu를 많이 활용하고자 하는 목적. 알고리즘은 멀티태스킹과 거의 동일
- 저장매체에서 파일을 읽느라 cpu가 실행되지 못하면, 그 기간엔 다른 프로그램을 실행함.
메모리 계층: 데이터 저장위해 여러 메모리 종류가 있음.
메모리 종류에 따라 접근하는데 걸리는 시간이 다름.
register - cache(level1~4) -//- memory -////- flash drive - harddisk 뒤로 갈수록 오래걸림.
▶멀티 태스킹: 단일 cpu
▶ 멀티프로세싱: 다수의 프로세서(cpu)가 하나의 프로그램을 쪼개 병렬로 동시에 실행. ->따라서 인스턴스간 공유된 자원간의 읽고쓰기가 여러 실행단계에서 발생되어 동기화이슈 가능성이 클때 사용함.
▶멀티 쓰레드: 쓰레드간 자원공유가 가능, 쓰레드간 별도의 통신 오버헤드가 적다. -> 공유된 자원간 쓰기가 없을 경우 사용( 동기화 기법 적용할 필요가 없기에) (자원공유=같은 자원을 여러개의 쓰레드가 공유하는 것 , 오버헤드=여러개의 cpu)
----------------스케쥴링 기법(알고리즘) ☆-----------------
1) FIFO 스케줄러: 가장 간단(배치처리시스템). 큐(선입선출)
2) SJF스케줄러(최단: 가장 실행시간이 짧은 프로세스부터 실행시키는 알고리즘. 우선순위 큐, 힙자료구조(O(n log ))
*RTOS: 정확하게 프로세스 간 대기없이 프로그램 시작 -> 완료시간을 보장
<-> GPOS: 일반적인 목적으로 사용됨. 프로세스 실행시간에 민감X (ex. windows, Linux)
3) 우선순위 기반 스케줄러 - PrioryBased스케줄러
-1.정적(프로세스마다 우선순위를 미리 지정)
- 2.동적(스케줄러가 상황에 따라 우선순위를 동적으로 변경)
4)RoundRobin스케줄러 : 큐에서 하나씩 꺼내서 프로세서에서 진행하고 다시 큐로 넣어 반복. (시분할 시스템)
=> 프로세스 상태 기반 스케줄러
FIFO,RoundRobin
프로세스 생성 - ready - running - 종료
\ blocked(대기) /
(멀티 프로그래밍)
프로세스 | 결과 | ||||||||
P3 | P2 | P2 | P1 | 스케줄러 | 1 | 2 | 3 | 4 | |
FIFO | P1 | P2 | P2 | P3 | |||||
소요시간 | 1초 | 5초 | 5초 | 3초 | SJF | P3 | P1 | P2 | P2 |
우선순위 | 2 | 3 | 3 | 1 | Priority | P1 | P3 | P2 | P2 |
RoundRobin | P1 | P2 | P3 (P2는 큐에) |
P2 |
*선점형 스케줄러 = 하나의 프로세스가 다른 프로세스 대신에 프로세서(cpu)를 차지할 수 있음.
프로세스 running 중에 스케줄러가 이를 중단시키고 다른 프로세스로 교체 가능.
비선점형 스케줄러 = 하나의 프로세스가 실행완료되거나, 자발적 blocked상태로 되었을때만 다른 프로세스로 교체가능.
프로세스 구조
응용프로그램은 라이브러리를 사용하며, 시스템자원이 필요할 경우 라이브러리는 내부적으로 시스템콜을 호출함.
참고- https://gaeunhan.tistory.com/70
[OS] 컨텍스트 스위칭(Context Switching)
컨텍스트 스위칭(Context Switching)이란? 멀티 프로세스 환경에서 CPU가 어떤 하나의 프로세스를 실행하고 있는 상태에서 인터럽트 요청에 의해 다음 우선순위의 프로세스가 실행되어야 할 때 기존
gaeunhan.tistory.com
https://analysis-flood.tistory.com/129
3. 운영체제 - 시스템 콜(System Call)
오늘은 운영체제의 시스템 콜(System Call)에 대해 공부해보도록 하겠습니다. 1. 운영체제는 사용자 인터페이스를 제공하는데요, 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스
analysis-flood.tistory.com
https://m.blog.naver.com/dkwlsrhstm/222049049506
IPC 개념 그리고 시그널/파이프 기법
학습내용1 : IPC 개념 1. 프로세스간 통신(Inter-Process Communication) - 프로세스간 데이터를 공...
blog.naver.com
[운영체제] 프로세스 스케줄링
컴퓨터 하드웨어인 CPU는 여러개의 프로세스를 동시에 실행할 수 없다.언제나 한순간에 오직 1개의 프로세스를 수행한다.다만, 운영체제의 멀티태스킹(Multi tasking)과 스케줄링 기법으로 여러개의
velog.io
'CS' 카테고리의 다른 글
CS 시스템 소프트웨어_리눅스, AWS실습 (0) | 2023.04.09 |
---|---|
CS운영체제3_쓰레드, 교착상태, 페이지폴트와 페이지 교체 알고리즘 (0) | 2023.04.01 |
cs 운영체제2_스레드,인터럽트, 시스템콜 개념정리 및 오답노트 (0) | 2023.03.25 |
댓글