전체 글
-
[OS] Page replacement운영체제 2020. 11. 26. 15:45
Page replacement Page fault 가 발생해서 해당 페이지를 로딩하기 위해 Free frame 을 찾는데 free frame 이 없는 상황에서 사용중인 frame 을 내쫓고 할당하는 방법 최대한 오버헤드가 없도록 해야함. 즉 frame 을 잘 골라서 내쫓는게 중요함 많이 사용 안될것같은 frame 가급적 수정이 안된 frame Write 된 frame 을 내쫓으면 디스크에 Write back(백업) 해줘야 하기 때문에 읽기만 수행된 frame 을 내쫓는게 이득임 페이지 테이블에 Modify(dirty) bit 를 추가하여 해당 페이지가 write 된 적이 있는지 체크 Over allocation(= 메모리 크기보다 큰 페이지를 할당하는 것)을 막는 것 또한 중요함 Page replacem..
-
[OS] COW(Copy On Write)운영체제 2020. 11. 26. 07:03
COW(Copy On Write) : 프로세스 종료 시 변경된 메모리 페이지만 디스크에 백업하는 정책
-
[OS] Demand paging운영체제 2020. 11. 26. 06:53
Demand Paging Page : 논리적 메모리의 최소 단위 Frame : 물리적 메모리의 최소 단위 Demand Paging : 프로세스에서 사용할 메모리 페이지를 프로세스 생성 시에 모두 할당하지 않고, 필요할 때마다 동적으로 할당하는 기법 Swap-out : 메모리가 가득 차버려서 일시적으로 특정 페이지를 디스크로 보내버리는 것. 디스크에 백업하는 것이기에 느림 Swap-in : 디스크에 백업했던 페이지를 프로세스에서 요청해서 다시 메모리로 불러들이는 것 Page fault : 사용자가 요청한 페이지가 swap out 되었거나 아직 로딩되지 않아서 없는 경우 Page-fault 가 발생하면 해당 프로세스의 명령어 수행을 중지(Trap을 발생)시키고, 디스크에서 해당 페이지를 로딩한 뒤 명령어를 ..
-
[OS] 가상메모리 주소공간과 MMU운영체제 2020. 11. 26. 05:20
가상 메모리 개념 Virtual memory(가상 메모리) : Physical memory 로부터 Logical memory 를 분리하는 것 Virtual memory space(가상 메모리 공간) : 프로세스가 메모리를 바라보는 Logical View(논리적 관점) MMU(Memory Management Unit) : 가상 메모리 공간을 물리 주소와 맵핑해주는 유닛 동적할당 Virtual Memory Space 를 Physical address 와 분리함으로서 위와 같이 사용 하지 않을 확률이 높은 “Sparse address space” 를 프로세스 생성과 동시에 할당하는 것이 아닌 사용할 때만 할당하는 방식을 사용할 수 있음 코딩적으로 예를 들자면 배열을 1만까지 할당하더라도 실제로는 100까지만 ..
-
[OS] OS 페이징 기법운영체제 2020. 10. 22. 20:08
Page table 기존 페이지 테이블의 문제점 : 메모리가 커지다보니 페이지 테이블이 커지는 문제 Two-level Page-Table scheme (Hierarchical paging) 페이지 테이블을 두 단계로 나누어서 페이지 사이즈를 줄임. 대신 메모리 접근 횟수가 1회 증가 Hashed Page Table (Clustered page table) 해시테이블로 page table 을 관리하는 법으로 충돌이 날 수 있기 때문에 내부에 linked list 또한 갖고 있다 메모리 접근횟수도 줄이고 테이블 사이즈도 확실히 줄어듦 Inverted Page Table 논리주소를 기반으로 페이지를 찾아서 물리주소를 찾는 방법과는 달리 물리주소를 테이블에 저장해두고 매칭되는 페이지를 찾는 방식 따라서 페이지 ..
-
[OS] 운영체제와 메모리운영체제 2020. 10. 22. 17:26
메모리 프로세스 수행 중 명령어를 실행시키려면 최소 1회의 메모리 접근이 필요함 PC 값을 이용하여 메모리로부터 실행해야할 instruction을 불러옴 명령어 해동 후 메모리에서 피연산자를 가져온 뒤 명령어 실행 후 필요 시 메모리에 결과값 저장 Base, Limit 레지스터 Base 레지스터( = Relocation 레지스터) : 프로세스의 시작 메모리 주소 Limit 레지스터 : 프로세스의 메모리 주소공간의 크기 Base 레지스터 값 + Limit 레지스터 값 = 프로세스의 메모리 끝 주소 유효성 검사 : if ( base < address < base + limit) OK else ERROR 이 범위를 벗어나는 메모리에 접근 시 에러를 발생 시킴 운영체제의 영역을 보호하기 위함과 동시에 하나의 메..
-
관계형 데이터베이스와 Relation Algebra데이터베이스 2020. 10. 21. 00:50
관계형 데이터 모델 Relation example sID name deptName year GPA totalCredit gender 1 Lee CS freshman 3.45 15 M 2 Kim Software senior 4.3 40 F 위 표는 2 tuples, 7 attributes 를 가진 Relation 입니다. Attributes 특정 도메인의 attribute의 모든 집합을 Attributes라고 부르며 Attribute는 원자적(atomic)이여야합니다. 원자적이라 함은 더 이상 쪼갤 수 없는 최소 단위로 이루어져야함을 말합니다. null 값은 모든 도메인의 member 입니다. Atomic attribute type Integer real char varchar Non-atomic attr..
-
CPU 스케쥴링운영체제 2020. 10. 19. 23:19
CPU 스케쥴링 CPU 작업의 종류 cpu burst : cpu 가 필요한 작업 i/o burst : i/o 가 필요한 작업 보통 cpu burst 는 8ms 정도면 대부분 끝남 Long term scheduler : 언제 프로세스를 메모리에 올리고 내릴지 결정하는 스케쥴러 Short-term scheduler : CPU 에 올릴 프로세스를 선택하고 해당 프로세스를 CPU에 할당해주는 스케쥴러 CPU 스케쥴링이 일어나는 시점 프로세스가 runing → waiting 상태로 감 ( branch 명령, I/O 처리, 할당 시간 초과 등) 프로세스가 runing → ready 상태로 감 프로세스가 waiting → running 상태로 감 프로세스의 terminate 비선점형(Non-preemptive) 스케..