목록3학년 1학기/운영체제 (OS) (47)
오래 못 할 짓 하지 않기
Storage에 File을 저장해야하는데 어떻게 해야 효율적으로 할 수 있을까?3가지 방법이 있다. ● Contiguous Allocation● Linked Allocation● Indexed Allocation Contiguous Allocation 각각의 파일이 연속적인 Block의 세트를 차지한다. 어떤 파일이 어느 정도의 크기가 필요한지를 나타내고할당해주는 방식이다. ● 장점 :최고의 Performance ● 문제점 :- File을 위한 공간 찾기- File size 알아내기- External Fragmentation 해결하기 위해서는 Compaction이 필요하다. Linked Allocation 각각의 파일이 Block 단위로 Linked 되어있다. 특징 :- 파일의 끝 = nil po..
Directory: 모든 파일에 대한 정보를 담고있는 node들의 집합 ● 특징- 효과적이다 : File 저장을 빠르게 할 수 있음- 이름 관리하기가 편하다 : 같은 파일이라도 다른 폴더에 있으면 이름이 같을 수 있다.- Grouping이 가능하다 : 파일을 묶음 단위로 저장 가능하다. ● Tree Structure Directories 특1. 검색이 간편하다.2. 그룹핑 하기 좋다.3. 절대경로, 상대경로를 나타낼 수 있다. ( 경로 나타내기 문제 나올 듯 ) ● Acyclic - Graph Directories특징 : 디렉토리들이 서로의 subDirectories나 File들을 공유할 수 있다. Link를 사용해서 구현한다.= 이 때문에 absolute path가 여러 개 존재한다. 삭제 관련..
https://twinw.tistory.com/109https://velog.io/@pjy05200/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EA%B3%B5%EB%A3%A1%EC%B1%85-CH-11.-Mass-Storage-Structure Mass - Storage Structure많은 양의 데이터를 저장하는 Stroage 에는 2가지가 있다. 1. Hard Disk Drives ( HDDs )2. nonvolatile memory ( NVM ) Hard Disk Drives ( HDDs )자성을 가진 물체가 돌아가면서 작동하는 HardDisk ● Transfer time : 읽고 쓰는 시간 ● Positioning Time에는 2가지가 있는데 1. Seek delay ..
https://twinw.tistory.com/107Allocation of Frames: 정해진 양의 Free mem을 어떻게 여러 프로세스에 나눠줘야 할까? ● Allocation 방법: 하나의 process에서 frame이 줄어든다면 → Page fault는 늘어나고 , Performance는 줄어든다. 1. Equal allocation : m개의 frame , n개의 process에게 준다면 각 프로세스 당 [ m/n 개 ] 의 프레임을 받는다. 2. Proportionalm 개의 frame에 대해 ai = 프로세스 pi 에게 할당된 프레임의 수si = pi의 크기S = 전체 프로세스의 크기 ai = si / S * m 하나의 프로세스에 할당된 프레임의 수= ( 해당 프로세스의 크기 ..
https://min-h-study-review.tistory.com/259Page Replacement demand paging 의 문제점은 2가지가 있다. 1. Page replacement 알고리즘을 어떤 걸로 할건지 (우린 이걸 알아볼거임): page fault를 가능한 조금 내는 방향의 알고리즘 = Backing store에 접근하는 시간이 많이 걸리니까 그걸 최대한 줄이려는 것2. Frame allocation 알고리즘은 어떤 걸로 할건지: 한 프로세스당 얼만큼의 프레임을 줘야 할지 어느 프레임에 교체할지 Page replacement 알고리즘 ● 돌아가는 방식: Page fault 가 일어났을 때 Free frame이 없다면, 현재 사용되지 않는 frame을 찾아야 한다. 위 사진에..
https://min-h-study-review.tistory.com/259Background Physical memory보다 큰 프로그램을 실행시켜야 한다면프로그램 전체를 가져올 필요가 없다. 실행할 때 당장 필요한 것들만 가져오면 되고,그렇지 않은 것들은 가상의 메모리에 저장해두면 된다.● Virtual MemoryLogical mem을 Physical mem으로부터 분리시킨 공간.= Logical address space는 physical address space보다 훨씬 크다. 여러 Process간에 address space도 공유할 수 있게 한다. 요약하면 물리 메모리보다 더 많은 것을 저장할 수 있게 해주는 메모리라고 생각하면 된다. Demand Paging: 요구되는 page만 loa..
만약 Paging 해야하는 게 엄청 많아지면 어떻게 처리해야 할까? Memory가 엄청 크고 우리가 고려해야하는 프로세스들이 많아지면page table이 엄청 커지지 않을까? 이를 처리하는 방법에는 3가지가 있다. ● Hierarchical Paging● Hashed Page Tables● Inverted Page Tables ● Hierarchical Paging: Logical address space 를 여러 Table로 나눈다.즉 Page를 위한 Page라고 생각하면 됨.ex) 윙의 윙 그림을 보면 Outer page table이 있다. Page table들을 모아두는 page table들이 있는 것이다. 이런 구조라고 생각하면 된다. 만약에 더 큰 Logical address space가 ..
외부 단편화의 이유: 각기 다른 크기의 프로세스가 메모리에 연속적으로 할당되어서 ▶ 모든 크기가 같았으면 발생하지 않음 = 그럼 같게 해주자 ● 프로세스의 논리 주소 공간을 페이지(page)라는 일정 단위로 자르고 [ 프로세스 공간 → 페이지 ] ● 메모리의 물리 주소 공간을 프레임이(frame)라는 페이지와 동일,일정한 단위로 자른 뒤 [ 메모리의 공간 → 프레임 ]페이지와 프레임 사이에서 매핑하는 걸 도와주는 Page Table이 있다. : Physical address의 공간이 연속적이지 않아도 되고, frame은 모두 같은 크기이므로● 효과 : 외부 단편화 문제를 해결한다! page = logical ..
이제는 CPU가 하는 일보다는, 메모리에 관련된 작업은 어떻게 이루어지는지 알아보자. ● 배경 지식 Process = 실행되고 있는 Program = 이 Program은 Instruction의 집합체 이고, 이들은 Main memory 안에 있다. - Memory는▶ 많은 양의 Byte로 된 Array로 이루어져 있고, 이는 각각의 address가 있다. ▶ 따라서 CPU는 Memory에서 PC에 따라 이 Instruction들을 Fetch하여 사용한다. 메모리 보호 : Process가 들어갈 수 있는 크기가 있다. 그걸 정해주는 Register 한 쌍 : Base register / Limit register Process 하나가 메모리에 들어가는 크기 = Limi..
Deadlock Preventionhttps://min-h-study-review.tistory.com/252 저번 강의에서 배웠던 Deadlock 이 발생하는 조건 중에하나만이라도 충족시키지 못하게 만들면 Deadlock을 예방할 수 있지 않은가 하는 아이디어 = 교착상태 발생 조건 중 하나를 제거하기 ● Mutual exclusion: 상호 배제를 없앴다면, 모든 자원을 공유하게 한다. 하지만, 현실적으로 모든 자원을 공유하는 건 불가능하다. ● Hold and wait: 점유와 대기를 없앤다.자원을 점유한 상태에서 다른 자원을 기다리는 것을 못하게 한다. = 특정 프로세스에게 자원을 모두 할당 or 아예 할당 X 배고픈 철학자 문제에 적용해보면, 포크 기다릴 거면 왼쪽 포크는 내려놓고 기다려라 ..