선릉역 1번 출구

운영체제3 본문

Hacking & Security/사전교육

운영체제3

choideu 2022. 5. 15. 11:08

프로세스간 협조

생산자와 소비자 문제(bounded-buffer problem)

- 여러 개의 프로세스 동기화 문제

- 생산자 프로세스와 소비자 프로세스가 공유하는 버퍼 이용에 따른 동기화

- 해결방법: 생산자-소비자 협동 or 세마포어(프로세스 접근 막음) , 뮤텍스(스레드를 막는 것)

 

임계영역 문제(critical section problem)

- 멀티 쓰레드 또는 멀티 프로세스 시 공유하는 변수, 파일, 테이블 등의 동시 변경에 따라 상호 모순이 발생하는 문제

- 해결 방법: 상호배제(하나의 프로세스가 임계영역에 있으면 다른 프로세스 출입 금지), 진행(임계영역에 프로세스가 없을 때 임계영역에 들어가려는 프로세스 순서 결정), 한계대기(한 번 임계 영역에 들어간 프로세스가 다음에 임계영역에 들어갈 때 제한을 두는 것)

 

프로세스간 통신(IPC)

공유 메모리 방식: 공유 변수를 통해 정보를 교환하고 운영체제는 프로그래머에게 공유 메모리만을 제공

(중개자가 없이 곧바로 접근이 가능해서 다른 모든 IPC 중에 가장 빠름)

- 스레드 간의 공유메모리: 동일한 프로세스 내의 스레드는 공유 메모리 사용

- 프로세스 간의 공유메모리: 서로 다른 프로세스 간의 공유메모리 설정을 위한 절차가 필요함

shmat, shmdt

 

메시지 시스템 방식: 프로세스들이 메시지를 교환하도록 허용하는 기법

송신자는 메세지 전달을 요청하기 위해서 메세지 버퍼에 Write -> OS는 그 메시지를 커널 메시지 버퍼에 저장 -> OS는 커널 메시지 버퍼에 있는 내용을  수신자의 메세지 버퍼에 전달 -> 수신자는 사용하게 됨 (느림)

 

1. 통신을 이용해 데이터를 주고 받음

2. 데이터를 함께 사용하는 것

https://dar0m.tistory.com/233

 

[OS] 프로세스 간 통신 방법(Inter Process Communication, IPC)

개념 프로세스들 간의 의사소통하는 것을 IPC라고 한다. 프로세스가 통신 가능하다는 것은 서로 다른 프로세스가 데이터를 주고 받을 수 있다는 것이며, 동시에 접근 가능한 메모리 즉, 프로세스

dar0m.tistory.com

 

메시지 시스템(메일박스, 랑데뷰 방식)

메일박스: 메일 박스에 저장함, 각 메일 박스는 고유한 numbering, 커널 내부에 메일박스를 만들고 적절한 시스템 콜을 사용하면 됨

랑데뷰방식: 극단적으로  buffer의 용량이 zero로 형태로 구현된 통신방법(송신 - direct - 수신)

상대방 요청시까지 대기를 함

 

교착상태(deadlock)

다중 프로그래밍 시스템 하에서 서로 다른 ㅍ프로세스가 일어날 수 없는 사건을 무한정 기다리며 더 이상 진행되지 못하는 상태(circular wait)

 

교착상태 발생 조건

1. 상호 배제: 동시에 여러 프로세스 사용 불가

2. 점유와 대기: 다른 자원을 점유하면서 자신에게 할당된 자원 미해제

3. 비중단 조건(비선점): 프로세스에 할당된 자원을 끝날 때까지 해제 불가

4. 순환 대기: 각 프로세스가 꼬리를 물어 자원을 점유하고 있어야 함

 

교착상태 해결방법

1. 예방: 교착상태 발생 조건이 모두 성립되지 않도록 하는 방법

2. 회피: 교착상태 발생 조건 중 일부는 성립될 수 있으나, 교착상태를 발생하지 않도록 하는 방법

3. 탐지: 교착상태 발생을 허용하고, 발생 시 이를 발견해 원인을 규명

4. 복구: 교착상태 발견 후, 순환 대기를 제거하거나, 자원을 중단

 

기억장치 구조

계층적 기억장치 구조

- 보조 기억장치/ 주 기억장치/ 캐시 기억장치(CPU 내 존재)

 

memory manager(기억장치관리자) 

기억장치 관리자는 기억 장치의 어느 부분이 사용중이고, 사용하지 않는지 파악하고 프로세스가 요구할 때마다 할당하고 회수하는 관리자임

 

메모리 반입 정책

1. 요구반입정책

2. 예상반입정책

 

메모리 할당 기법

프로그램, 데이터 입력 시, 동작할 기억장소 위치를 결정하는 기법

First-fit

Worst-fit

Best-fit

 

연속할당기법

분산할당기법

https://lipcoder.tistory.com/379

 

4-3-5장. 주기억장치 할당 기법 - C

주기억장치 할당의 개념 주기억장치 할당 기법은 프로그램이나 데이터를 실행시키기 위해 주기억장치에 어떻게 할당할 것인지에 대한 내용이며, 연속 할당 기법과 분산 할당 기법으로 분류할

lipcoder.tistory.com

 

메모리 교체 기법

페이지 부재가 발생하면 메모리에서 제거할 페이지를 삭제하는 것

FIFO, LRU, LFU, OPT, SCR, NUR

https://doh-an.tistory.com/28

 

[OS] 페이지 교체 알고리즘 - FIFO/LRU/LFU/MFU/NUR

💡 페이지 교체 알고리즘 운영체제는 주기억장치보다 더 큰 용량의 프로그램을 실행하기 위해 프로그램의 일부만 주기억장치에 적재하여 사용한다. 이를 가상메모리 기법이라 한다. 페이징 기

doh-an.tistory.com

 

메모리 단편화 문제

기억장치 관리에서 각 작업에 필요한 기억장치 공간들을 계속적으로 할당 및 회수를 반복할 때, 주 기억 장치중에서 실제로 작업에 사용되지 않으면서 유용하게 사용될 수도 없는 공간이 발생하는 문제

내부 단편화/ 외부 단편화

(분산할당기법: 페이징/세그먼테이션)

해결방법

- 압축: 산재한 기억장소를 한 군데로 모아 최대의 연속된 빈 공간을 확보하는 것

- 페이징: 주소 공간을 페이지 단위로 나눔

- 세그먼테이션: 주소 공간을 세그먼트 단위로 나눔

 

가상기억장치

물리적 기억장치의 효율을 위해 논리적으로 확장된 기억장치를 제공하는 기법

요구 페이징(Demand Paging)

스래슁(thrashing)

-공간 구역성

-시간 구역성

https://goodmilktea.tistory.com/36

 

8. 가상 메모리와 요구 페이징

운영체제가 메모리관리를 하는 이유에는 제한된 크기의 메모리를 많은 개수의 프로세스가 서로 나누어서 효율적으로 사용할 수 있도록 잘 할당하는 것에 있다. 그래서 앞에서 다뤘던 스와핑이

goodmilktea.tistory.com

 

'Hacking & Security > 사전교육' 카테고리의 다른 글

운영체제4  (0) 2022.05.16
운영체제2  (0) 2022.05.10
운영체제1  (0) 2022.05.09
Comments