본문 바로가기

분류 전체보기78

10-2. Virtual Memory Management_SW components 가상 메모리의 성능 향상을 위한 sw측면의 관리 기법들을 살펴보자 Allocation stratagies 메모리를 얼마만큼 할당할지에 대한 전략으로 Fixed allocation(고정 할당) Variable allocation(가변 할당) 이 있다. 고정 할당은 프로세스의 실행동안 고정된 크기의 메모리 할당을 말하며 가변할당은 프로세스의 실행동안 할당하는 메모리의 크기가 유동적인것을 말한다. 너무큰 메모리를 할당하면 메모리가 낭비되고, 너무 적은 메모리를 할당하면 Page fault rate가 증가해 시스템 성능 저하를 일으키기 때문에 적절한 사이즈의 메모리를 할당해 주어야 하는데 이를 위해서는 프로세스의 실행에 필요한 메모리 양을 예측해 주어야 한다. Fetch stratagies 메모리를 언제 가져올.. 2022. 1. 12.
10-1. Virtual Memory Management_cost model 과 HW components 가상메모리 Non-continous allocation 으로 사용자 프로그램을 block으로 분할하여 적재/ 실행하며 Paging/Segmentation 이 둘을 섞어 사용하는 Hybrid system 방식으로 분할하여 적재/실행한다. 가상메모리를 관리 하는 목적은 당연히 가상메모리의 시스템의 성능에 대한 최적화를 목적으로한다. 성은에 대한 지표로 Cost model을 두고 이 지표를 낮추는 것을 목표로한다. Cost model for VM.Sys. 가상메모리 시스템의 성능에 대한 Cost model 로는 Page falult frequency(발생빈도) Page fault rate(발생률)이 있다. 즉 Page fault 를 최소화 할 수 있도록 관리해야 한다. 이유는 Page fault가 발생하면 C.. 2022. 1. 11.
[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.
week09 pintos project 2 WIL 프로젝트 2는 1보다 훨씬 그 양과 깊이가 깊었던 주인 것 같다. 우선 2에서 전체적으로 실제 pintos를 이용하여 그 위에 프로그램을 실행하는 가상의 프로그래머가 있다고 생각하고 전체적으로 pintos를 테스트해보는 과제였다고 생각한다. 가상메모리 주는 다음 주인데 프로젝트 2를 이해하기 위해서는 프로세스의 가상 메모리 구조와 메모리 관리 영역을 공부를 안 하면 안 되겠어서 memory management 부분과 가상 메모리 영역의 이론 강의를 들었다. 8.Main memory management(1)_용어와 개념리마인드 메모리 관련 글 메모리시스템 메모리는 cpu가 프로그램을 실행하거나 데이터를 참조하기위 해 필요한 정보를 불러오는 공간이다. 메모리 계층 구조란 메모리를 필요에 따라 여러가지 종류로.. 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.