분류 전체보기 188

TIL 정리_104(Virtual Memory 2)

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323 운영체제 강의를 듣고 정리한 내용입니다. LRU(Least Recently Used) Algorithm 제일 많이 사용되는 알고리즘이다. 제일 오래전에 사용된 것을 내쫒는다(지운다) LFU(Least Frequently Used) Algorithm 참조 횟수가 가장 적은 페이지를 지운다 다양한 cashing 환경 cashing 기법 캐시 : 한정된 빠른 공간 한정된 빠른 공간에 요청된 데이터를 저장해 두었다가 후속 요청시 캐시로부터 직접 서비스하는 방식이다 페이징 시스템 외에도 캐시 메모리, 버퍼 캐싱, 웹 캐싱 등 다양한 분야에서 사용된다 캐시 메모리 : CPU에서 메모리를 접근 할 때 메인 메모리..

TIL 정리_103(Virtual Memory 1)

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323 운영체제 강의를 듣고 정리한 내용입니다. Memory Management에서의 메모리 관리는 물리적인 메모리 관리를 의미하기 때문에, 주소 변환에 있어 운영체제의 역할은 없다 하지만 Virtual Memory에서는 I/O장치가 접근하기 때문에 사용자 프로세스가 직접 접근할 수 없게되어 운영체제의 개입이 발생한다! Demand Paging 요청이 있으면 페이지를 올린다 -> 실제로 필요할 때 page를 메모리에 올리는 것이다 특징 I/O양의 감소 Memory 사용량 감소 빠른 응답 시간 더 많은 사용자 수용 -> 한정된 메모리 공간을 효율적으로 사용할 수 있다 Valid/Invalid bit의 사용 >..

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개가 되었다!

[개요] 2월 14일부터 시작한 블로그 기록을 하루에 한 개는 꼭 쓰고자 부담없이 쓸 수 있는 주제인 그날 공부한 내용을 정리한 (모든 내용을 정리하진 않았다) TIL 정리 글이 어느새 100개가 되었다 **TIL 은 Today I Learned의 줄임말이다!! 되도록이면 하루 1개를 쓰고자 했지만 자정을 넘어서 올리거나 하루 이틀 정도는 빼먹기도 했다 결국 100개를 채웠다는게 뿌듯하기도 하고 "오히려 해낸게 없다는 생각도 들었다" 왜? > 솔직히 정보글이라기에도 애매하고 제대로 공부가 된 내용이 맞는지 모르겠다. 가볍게 쓰기 시작한 글이지만, 하루하루 쓰는것에 급급하여 글의 내용이 점점 별도의 정리 없이 그저 공부한 내용의 복사+붙여넣기로 바뀌었다는 사실을 깨닫고 나니 누구를 위한지 모를 이 시간이 ..

개인기록 2022.05.27

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..