본문 바로가기
CS

cs 운영체제-프로세스 개념정리 및 오답노트

by hyuni07 2023. 3. 18.

책추천(잔재미코딩)

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: 응용프로그램 제어

주요 기능을 하는 커널과 부가적인 기능을 하는 여러 프로그램이 추가된 상태를 os라고 함.

부가 여러 프로그램

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

https://velog.io/@xxhaileypark/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81

 

[운영체제] 프로세스 스케줄링

컴퓨터 하드웨어인 CPU는 여러개의 프로세스를 동시에 실행할 수 없다.언제나 한순간에 오직 1개의 프로세스를 수행한다.다만, 운영체제의 멀티태스킹(Multi tasking)과 스케줄링 기법으로 여러개의

velog.io

https://sorjfkrh5078.tistory.com/56

댓글