CS지식/운영체제 31

TIL 정리_99(Memory Management)

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323 운영체제 강의를 듣고 정리한 내용입니다 주소 바인딩 (Address Binding) Compile time binding Load time binding Execution time binding (= Runtime Binding) Compile time binding에 의해 만들어진 코드를 절대코드라고 한다 Load time binding은 재배치 가능 코드이다 Runtime binding은 계속 주소가 바뀌기 때문에 요청이 올때마다 binding을 체크해야 한다 -> 하드웨어 적인 지원이 필요하다 (MMU) **하드웨어인 CPU가 바라보는 주소는 lodical address이다 주소변환을 위한 하드..

TIL 정리_98(Deadlock&Memory)

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323 운영체제 강의를 듣고 정리한 내용입니다 Deadlock의 처리방법 Deadlock Prevention 자원 할당 시 deadlock의 4가지 필요조건 중 어느 하나가 만족되지 않도록 하는 것이다. Deadlock Avoidance 자원 요청에 대한 부가적인 정보를 이용해서 deadlock의 가능성이 없는 경우에만 자원을 할당한다. 시스템 state가 원래 state로 돌아올 수 있는 경우에만 자원을 할당한다 Deadlock Detection and recovery deadlock 발생은 허용하되 그에 대한 detection 루틴을 두어 deadlock 발견 시 recover 한다 Deadlock Ig..

TIL 정리_97(Deadlock)

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323 운영체제 강의를 듣고 정리한 내용입니다 Deadlock 일련의 프로세스들이 서로가 가진 자원을 기다리며 block된 상태를 말한다 Resource 하드웨어, 소프트웨어 등을 포함하는 개념이다 예) I/O device, CPU cycle, memory space, semaphore 등이 있다 프로세스가 자원을 사용하는 절차 request, allocate, use, release Deadlock의 처리 방법 *상위에 기술된 것이 강한 처리방법이다 1. Deadlock Prevention 자원 할당 시 deadlock의 4가지 필요조건 중 어느 하나가 만족되지 않도록 하는 것이다. Deadlock을 미연..

TIL 정리_96(Monitor, Deadlock)

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323 운영체제 강의를 듣고 정리한 내용입니다 Monitor 동시 수행중인 프로세스 사이에서 추상 데이터 타입의 안전한 공유를 보장하기 위한 high-level synchronization construct이다 Monitor를 이용한 해결코드 Monitor에서는 lock을 걸거나 풀 필요가 없다 Bounded-Buffer Problem (Monitor 이용) monitor bounded_buffer { int buffer[N]; condition full, empty; //condition 변수는 값을 가지지 않고 자신의 큐에 프로세스를 매달아서 sleep 시키거나큐에서 프로세스를 깨우는 역할만 한다. vo..

TIL 정리_95(동기화 관련 문제(2))

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323 운영체제 강의를 듣고 정리한 내용입니다 동기화와 관련된 문제 동기화와 관련된 고전적인 문제가 3가지 있다 Bounded-Buffer-Problem Readers-Writers Problem Dining-Philosophers Problem 3. Dining Philosophers Example = 식사하는 철학자 문제(Dining-Philosophers Problem) Dining Philosophers Example 코드 Synchronization variables semaphore chopstick[5]; //모든 초기값은 1로 가정한다 Phiolsopher i do { P(chopstick[i..

TIL 정리_94(동기화 관련문제)

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323 운영체제 강의를 듣고 정리한 내용입니다 동기화와 관련된 문제 동기화와 관련된 고전적인 문제가 3가지 있다 Bounded-Buffer-Problem Readers-Writers Problem Dining-Philosophers Problem 1. Bounded-Buffer-Problem 버퍼의 크기는 유한하다 -> 생산자 & 소비자 문제가 발생한다 프로세스가 Producer/Consumer로 여럿 존재한다 Producer(생산자) Empty 버퍼가 있는지 확인한다(없으면 기다린다) 공유 데이터에 lock을 건다 Empty Buffer에 데이터 입력 및 버퍼를 조작한다 lock을 푼다 Full buffe..

TIL 정리_86

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323 운영체제 강의를 듣고 정리한 내용입니다 추상 자료형 : Object와 Operation으로 이루어져있다. 논리적으로 정의를 하는 것을 말한다. Semaphore S 이전의 방식들을 추상화시킨 방법으로 정수값을 가질 수 있는 추상자료형이다 lock을 걸고 푸는 것을 간단하게 사용가능하게 만든다 공유 자원을 획득하고 반납하는 것을 처리해준다 P연산과 V연산에 의해서만 접근 가능하다 P(S) : //lock을 거는 과정 while(S 자원을 획득한다 V(S) : //lock을 푸는 과정 while(S 자원을 반납한다 코드로 구현 Synchronization variable -> semaphore mutex..

TIL 정리_85

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323 운영체제 강의를 듣고 정리한 내용입니다 *문제점 하나의 프로세스가 critical section에 있을 때 다른 모든 프로세스는 critical section에 들어갈 수 없어야 한다 해결을 위한 알고리즘 두 개의 프로세스 P0, P1가 있다고 가정한다 프로세스들의 일반적인 구조 do { entry section critical section exit section remainder section } while(1); 프로세스들은 수행의 동기화(synchronize)를 위해 몇몇 변수를 공유할 수 있다 -> synchronization variable 프로그램적 해결법의 충족 조건 가정 모든 프로세스..

TIL 정리_84

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323 운영체제 강의를 듣고 정리한 내용입니다 Process Synchronization 프로세스 동기화 데이터의 접근패턴 어떤 위치에 있던 간에 저장되어 있는 위치를 읽어와서 연산 후 다시 저장하는 방식으로 데이터를 접근한다 S-box -> Memory Address Space -> 디스크, 프로세스의 메모리 주소 공간 E-box -> CPU Process -> CPU, 컴퓨터 내부, CPU 프로세스 s-box를 공유하는 e-box가 여러 개 존재하는 경우 Race Condition의 가능성이 있다 -> 경쟁상태 race condition이 발생하는 경우 kernel 수행 중 인터럽트 발생 시 프로세스가 ..

TIL 정리_83

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323 운영체제 강의를 듣고 정리한 내용입니다 CPU가 여러개 있는 경우의 스케줄링 CPU가 여러 개인 경우 스케줄링은 더욱 복잡해진다 Multiple-Processor Scheduling Homogeneous processor Queue에 한 줄로 세워서 각 프로세서가 알아서 꺼내가게 할 수 있다 반드시 특정 프로세서에서 수행되어야 하는 프로세스가 있는 경우 문제가 더 복잡해진다 Load sharing 일부 프로세서에 job이 몰리지 않도록 부하를 적절히 공유하는 메커니즘이 필요하다 별개의 큐를 두는 방법과 공동 큐를 사용하는 방법이 있다 Symmetric Multiprocessing(SMP) 각 프로세서..