CS지식 89

TIL 정리_102(Memory Management)

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323 운영체제 강의를 듣고 정리한 내용입니다. Shared Page - 다른 페이지와 공유가능한 페이지 Shared code Re-entrant Code (== Pure code)라고도 한다 여러 프로세스가 공유할 수 있는 코드 부분을 같은 물리적인 메모리의 프레임으로 매핑하는 기법을 의미한다. Re-entrant Code가 만족해야 하는 2가지 조건 read-only로 하여 프로세스 간에 하나의 code만 메모리에 올린다 (text editors, compilers, window systems) Shared code는 모든 프로세스의 논리적 주소 공간에서 동일한 위치에 있어야 한다 Private code..

TIL 정리_101(Memory Management)

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323 운영체제 강의를 듣고 정리한 내용입니다 Noncontiguous allocation 불연속 할당 Paging Segmentation Pages Segmentation Two-Level Page Table 2단계 페이지 테이블 보통은 속도를 빠르게 하거나 공간을 줄일 때 사용한다 -> 이 경우 속도는 개선이 되지 않는다 현대의 컴퓨터는 주소 공간이 매우 큰 프로그램을 지원한다 32 비트 주소 사용시 2^32(4G)의 주소공간이 필요하다 (2^10 = K, 2^20 = M, 2^30 = G) page size가 4K일 때 1M개의 page table entry가 필요하다 각 page entry가 4B시 ..

TIL 정리_100(Memory Management)

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323 운영체제 강의를 듣고 정리한 내용입니다 Fixed partition allocation(고정 분할 방식) 물리적 메모리를 몇 개의 영구적 분할로 나눈다 Internal fragmentation이 발생한다 (external fragmentation도 발생) Variable partition allocation(가변 분할 방식) 분할의 크기, 개수가 동적으로 변한다 단점 : External fragmentation이 발생한다 **External fragmentation(외부 조각) 프로그램 크기보다 분할의 크기가 작은 경우 아무 프로그램에도 배정되지 않은 빈 곳인데도 프로그램이 올라갈 수 없는 작은 분할..

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 정리_93(정렬 알고리즘)

https://www.boostcourse.org/cs204 자료구조 강의를 듣고 정리한 내용입니다 *강의 후반부에서 다루는 알고리즘에 대한 내용을 정리한 글입니다 알고리즘과 관련된 선수지식 > 리스트에 있는 데이터를 정렬할 때, 어떻게 정렬을 할 것인지 고려해야 한다 Out-of-place 정렬 데이터 구조의 복사본을 만든 후 정렬하는 방법이다 //용량이 늘어난다 in-place 정렬 내부에서 데이터 구조들의 위치를 바꾸어 정렬하는 방법이다 > 리스트에 중복된 요소가 있는지 체크해야한다 안정 정렬 : 중복된 숫자가 원래 순서를 유지한 상태로 정렬하는 방법이다 -> 순차적이고, 규칙적이다 불안정 정렬 : 중복된 숫자의 순서를 보장할 수 없다 -> 비 순차적, 불규칙적이다 > 해당 정렬 알고리즘을 썼을때 ..