본문 바로가기

분류 전체보기140

7.2. 데드락 Deadlock 2 이화여자대학교 반효경 교수님의 운영체제 강의를 요약한 내용입니다. 틀린 부분이 있다면 지적해주시면 감사하겠습니다. 강의 링크 2.3. Deadlock Detection and recovery 방치하되 탐지 루틴을 둔다. 시스템이 느려지거나 하면 데드락을 탐지해서 해결 자원당 인스턴스 하나 -> 자원할당그래프 자원당 인스턴스 여러개 -> 표 사실상 하나일때도 표로하는게 편하다. 자원할당그래프는 표의 서브셋 느낌이다. avoidance도 마찬가지. 2.3.1. Detection 자원할당그래프에서 자원을 제거해서 wait-for graph를 그린다. 특정 프로세스가 요청한 자원을 어떤 프로세스가 가졌는지 가르키게 됨. P1이 (2,0,2)를 요청했지만 가용 자원이 없는 상황 낙관적으로 요청.. 2022. 8. 3.
7.1. 데드락 Deadlock 1 이화여자대학교 반효경 교수님의 운영체제 강의를 요약한 내용입니다. 틀린 부분이 있다면 지적해주시면 감사하겠습니다. 강의 링크 1. Deadlock 데드락이란 일련의 프로세스들이 서로가 가진 자원을 기다리며 block된 상태이다. 앞의 그림을 보면 서로 앞의 차가 빠지길 기다리지만 서로가 서로를 막아 움직일 수 없다. 위와 같은 상태이다. 예시 : 테이프가 서로 한쪽식 가지고 원하는 경우 Bianry semaphores 자원 사용 단계 : 요청(Request), 획득(Allocate), 사용(Use), 반납(Release) 1.1. Deadlock 발생의 4가지 조건 Mutual exclusion(상호 배제) 매 순간 하나의 프로세스만이 자원을 사용 No preemption(비선점) 프.. 2022. 8. 3.
6.3. 프로세스 동기화 Process Synchronization 3 이화여자대학교 반효경 교수님의 운영체제 강의를 요약한 내용입니다. 틀린 부분이 있다면 지적해주시면 감사하겠습니다. 강의 링크 1. 동기화의 고전적인 문제들 1.1. Bounded-Buffer Problem (Producer-Consumer Problem) 버퍼의 크기가 유한하다. 공유 데이터 buffer 자체 및 buffer 조작 변수(시작 위치를 뜻함) 두 개의 프로세스 종류 : Producer, Consumer 각각 여러 개 Producer : 공유 버퍼에 데이터를 만들어서 집어넣는 역할 Consumer : 공유 버퍼에 데이터를 꺼내감 문제1 mutual exclusion -> bianry semaphore 같은 empty buffer에 Producer .. 2022. 8. 2.
6.2. 프로세스 동기화 Process_Synchronization 2 이화여자대학교 반효경 교수님의 운영체제 강의를 요약한 내용입니다. 틀린 부분이 있다면 지적해주시면 감사하겠습니다. 강의 링크 1. Semaphores 위키피디아 세마포어 두 개의 원자적 함수로 조작되는 정수 변수 공유 자원에 대한 접근을 제한하는 방법으로 사용 모든 교착 해결하진 않음. 추상 자료형의 일종. 프로그래머가 편리해짐. 1.1. busy waiting 이용한 구현 방식 lock/unlock 을 semaphore을 통해 가능 공유자원을 획득하고 반납하는 것을 처리해줌 아래 두 가지 연산은 atomic해야함. P 연산 공유데이터를 획득하는 과정 S값이 0이하면 while문을 돌다가 자원 생기면 가져감 마찬가지로 busy waiting 생김 V 연산 다.. 2022. 7. 30.
6.1. 프로세스 동기화 Process_Synchronization1 이화여자대학교 반효경 교수님의 운영체제 강의를 요약한 내용입니다. 틀린 부분이 있다면 지적해주시면 감사하겠습니다. 강의 링크 1. Synchronization의 필요 1.1. 데이터의 접근 이해를 돕기 위해 저장소를 Storage, 연산하는 곳을 Execution이라는 이름으로 임의로 지정한 상태이다. 컴퓨터 시스템에는 이런 구조가 자주 있다. 데이터가 저장된 곳에서부터 연산할 데이터를 받아서 연산을 하고, 다시 결과를 전달해주면 그것을 저장하는 것이다. 그림의 예시처럼 Memory, 디스크, 주소 공간 등의 경우이다. 여러 Execution박스가 Storage를 공유 시 문제가 생길 수 있다. 누가 먼저 읽어왔는가에 따라 결과가 달라질 수 있다. proces.. 2022. 7. 30.
5.2. CPU 스케줄링 CPU_Scheduling 2 이화여자대학교 반효경 교수님의 운영체제 강의를 요약한 내용입니다. 틀린 부분이 있다면 지적해주시면 감사하겠습니다. 강의 링크 1. Multilevel Queue 여러 줄로 cpu 사용을 기다린다 위로갈수록 우선순위가 높다. 우선순위가 높은 프로세스가 기다리고 있으면, 먼저 처리한다. 의문 프로세스를 어느 줄에 넣을 것인가? 무조건 우선순위 높은 프로세스만 우선하는가? 1.2. Multilevel Queue 예시 레디큐를 여러 개로 분할한다. -> interactive한 foreground와 interactive하지 않은 일괄처리를 하는 background 각 특성에 맞게 독립적인 스케줄링 알고리즘을 가지게 한다. 먼저 어느 줄에 cpu를 줄지 결정하고, 해당 줄에서 어느 프.. 2022. 7. 28.