OS38 [Project 3_Virtual Memory]_Intro 프로젝트 1,2를 통해 muliple thread의 실행과 synchronization, 그리고 여러 프로그램을 한 번에 로드할 수 있게 되었다. 그러나 실행할 수있는 프로그램의 수와 해당 메모리는 각 가상 머신의 메인 메모리 사이즈까지로 제한적이었다. project 3에서 환상 속의 무한의 메모리를 만듦으로써 이 제한을 없애볼 것이다. 백그라운드 소스파일 vm 폴더에서 작업할것이다. 아래 템플릿 파일들을 수정하게 된다. include/vm/vm.h, vm/vm.c 헤더 파일에서는 가상 메모리의 일반적 인터페이스를 제공한다. VM_UNINIT, VM_ANON, VM_FILE, VM_PAGE_CACHE 등은 우리가 구현할 가상 메모리 시스템을 support 하는 vm_type들이며 설명이 적혀있다(vm_p.. 2022. 1. 11. 컨텍스트 스위칭과 스와핑의 차이점 참고 : https://www.geeksforgeeks.org/difference-between-swapping-and-context-switching/ 프로그램은 특정한 작업을 수행하도록 설계된 instructions이다. 마찬가지로 프로세스는 프로그램의 runtime instance를 나타낸다. 프로그램을 실행하는 동안 여러 thread가 병렬로 실행될 수 있고 만약 하나의 thread만 존재한다면 스레드 자체를 프로세스라고 부르기도 한다. 컨택스트 스위칭 운영체제는 컨텍스트 스위칭을 사용하여 CPU의 프로세스간 전환시 기존 프로세스의 context를 저장하고 새로운 프로세스를 로딩한다. 현재 실행중인 프로세스의 저장된 상태를 PCB에 복사하고 이후 실행을 재개하거나 다음에 실행할 프로세스의 상태를 .. 2022. 1. 10. [Project 2_User Programs]_System Calls userprog 테스트 위한 아웃풋 list (디버그 할 때 사용하면 좋아요) 더보기 더보기 pintos -v -k -T 60 -m 20 --fs-disk=10 -p tests/userprog/create-empty:create-empty -- -q -f run create-empty pintos -v -k -T 60 -m 20 --fs-disk=10 -p tests/userprog/create-null:create-null -- -q -f run create-null pintos -v -k -T 60 -m 20 --fs-disk=10 -p tests/userprog/create-bad-ptr:create-bad-ptr -- -q -f run create-bad-ptr pintos -v -k -T 60 .. 2022. 1. 9. 9-3. Virtual Memory (Hybrid paging/segmentation system) Hybrid paging/segmentation system 페이징과 세그멘테이션의 장점만 결합한 시스템으로 프로그램 분할 시 논리 단위의 segment로 분할 후 각 segment를 고정된 크기의 page로 분할하여 메모리 적재 시 page단위로 적재하는 방법을 취한다. Address mapping virtual address: v = (s, p, d)로 구성 s = segment number p = page number d = offset in a page SMT와 PMT를 모두 사용하며 각 프로세스마다 하나의 SMT 각 세그멘트 별 하나의 PMT를 가진다. 최종적으로 page를 메모리에 적재함으로 메모리 관리방식은 FIxed partition multiprogaming과 유사하다. SMT에는 res.. 2022. 1. 6. 9-2. Virtual Memory (Segmentation System) Segmentation System 프로그램을 논리적 block(segment)로 분할하므로 block의 크기가 서로 다를 수 있다. ex) tack, heap, main, procedure, shared lib... 논리적 단위로 나누기 때문에 메모리를 미리 분할하지 않는다. Segment의 공유와 보안이 용이하지만 Address mapping과 메모리 관리의 overhead가 크다. 또한 내부 단편화는 발생하지 않으나 외부 단편화는 발생이 가능하다. Segmentation Address Mapping 가상 주소 v =(s, d) s = segment number d = offset SMT(Segment Map Table) PMT와 다르게 segment length와 protection bits테이블이.. 2022. 1. 6. 9-1. Virtual Memory (Non-continous allocation)_Paging system Non-continuous allocation 사용자 프로그램을 여러 개의 block으로 분할하여 할당하는 것을 말하며 실행시마다 필요한 block들만 메모리제 적재하고 나머지는 Swap device에 존재하게 하는 가상 메모리가 이를 따른다. 메모리 할당 기법으로는 Paiging, Segmentation, Hybrid Paging/segmentation 이 있다 Virtual address(가상주소)/relative address는 논리 수조로 연속된 메모리 할당을 가정한 주소이다. Real address(실제주소)/physical(absolute address 는 실제 메모리에 적재된 주소로 연속되지 않을 수 있다. * Address mapping은 가상 주소를 실제 주소로 바꾸어 주는것이다. Blo.. 2022. 1. 6. 이전 1 2 3 4 5 6 7 다음