본문 바로가기

반응형

운체

(13)
운영체제(20) - 디스크와 디스크 스케줄 디스크의 구조 플래터 : 표면의 자성체와 자기를 이용해 0과 1의 데이터를 저장 Logical 블록 디스크의 외부에서 보는 디스크의 단위 정보 저장 공간들 주소를 가진 1차원 배열처럼 취급 정보를 전송하는 최소 단위 섹터 Logical block이 물리적인 디스크에 매핑된 위치 Sector 0은 최외곽 실린더의 첫 트랙에 있는 첫 번째 섹터이다 하나의 섹터에는 한 덩어리의 데이터가 저장되고 이들이 모여 플래터가 된다 트랙 : 플래터에서 회전축을 중심으로 데이터가 기록되는 동심원 실린더 : 트랙들의 집합 디스크 관리 Physical formatting ( Low - level formatting) 디스크를 컨트롤러가 읽고 쓸 수 있도록 섹터들로 나누는 과정 각 섹터는 header + 실제 data ( 보통..
운영체제(19) - 디렉토리 구현과 VFS, NFS 디렉토리를 구현하는 공간을 어떻게 할당하고 관리하는가?? Linear list 의 list 구현이 매우 간단하다 디렉토리 내에 파일이 있는지 찾기 위해서는 linear search필요하다 실행 시간이 길다 Hash Table linear list + hashing Hash table은 file name을 이 파일의 linear list의 위치로 바꾸어줌 search time을 없앰 Collision 발생 가능 해시 테이블이 고정된 크기를 갖기에, 크기에 따라서 해시 기능도 제한을 받는다 VFS ( Virtual File System) 서로 다른 다양한 file system에 대해 동일한 시스템 콜 인터페이스(API)를 통해 접근 할 수 있게 해주는 OS의 layer NFS ( Network File Sy..
운영체제(17) - 파일 할당 ( Allocation of File Data in Disk) 연속 할당 ( Contiguous Allocation) 연속된 블록에 파일을 할당하는 것 장점 Fast I / O, 한번의 seek/rotation으로 많은 바이트 transfer Direct access ( = random access) 가능 단점 외부 단편화 ( external fragmentation) File grow가 어려움, 중간중간 hole이 생김 연결 할당 (Linked Allocation) 연결 할당은 연속 할당의 문제점을 해결하기 위해 나온 방법으로, 연속적으로 할당하는 것이 아니라 링크드 리스트(linked list)와 같은 방식으로 파일을 할당 장점 : 외부 단편화 발생 안함 = 디스크 낭비가 없다 단점 직접 접근이 안됨 Reliability 문제 : 한 sector가 고장나 poi..
운영체제 (15) - 다양한 Caching 환경 Caching 기법 한정된 빠른 공간( = Cache)에다가 요청된 데이터를 저장해 두었다가 후속 요청서 캐쉬로부터 직접 서비스하는 방식 paging system외에도 Cache memory, buffer caching, Web caching등 다양한 분야에서 사용 Caching에서는 시간 제약이 있다. 왜냐하면 더 빠르자고 쓰는 건데 이게 오래걸리면 어불성설이기 때문이다 Buffer caching이나 Web caching의 경우 ... O(1)에서 O( log n )정도까지 허용 Paging system의 경우... Page fault인 경우에만 OS가 관여함 페이지가 이미 메모리에 존재하는 경우 참조시각 등의 정보를 OS가 알 수 없음 O(1)인 LRU의 리스트 조작조차 불가능하 Paging Syst..
운영체제(14) - 가상 메모리 (Virtual Memory) Virtual Memory 운영체제에서 실제 물리 메모리 (RAM)보다 큰 주소 공간을 프로세스에 제공하기 위해 사용되는 기술 가상 메모리의 주소와 실제 메모리의 주소는 일치하지 않는다 그렇기에 가상 메모리의 주소와 실제 메모리 주소를 1:1 대응 시켜야 하는데 이걸 해결해주는 것이 MMU(Memory Management Unit)이다. Demand paging 실제로 필요할 때 page를 메모리에 올리는 것 I / O 양의 감소 Memory 사용량 감소 빠른 응답 시간 더 많은 사용자 수용 Valid / Invalid bit의 사용 Invalid의 의미 -> 사용되지 않는 주소 영역인 경우, 페이지가 물리적 메모리에 없는 경우 처음에는 모든 page entry가 invalid로 초기화 address t..
운영체제(12) - 프로세스의 메모리 할당 (연속 할당 방식) 사용자 프로세스 영역의 할당 방법 Contiguous allocation (연속 할당) : 각각의 프로세스가 메모리의 연속적인 공간에 적재되도록 Noncontiguous allocation (비연속적 할당) : 하나의 프로세스가 메모리의 여러 영역에 분산되어 올라갈 수 있음 Contiguous allocation 1. 고정 분할 방식 물리적 메모리를 주어진 개수만큼의 영구적인 분할로 미리 나누어두고 각 분할에 하나의 프로세스를 적재해 실행 시킬 수 있게함, 분할의 크기는 모두 동일하게 할 수도 있고, 서로 다르게 할 수도 있다 융통성이 없음 외부 단편화 : 프로그램의 크기보다 분할의 크기보다 작은경우에는 해당 분할이 비어 있는데도 불구하고 프로그램을 적재하지 못하기 때문에 발생하는 현상 내부 단편화 : ..
운영체제(11) - Memory, 주소, 논리적 주소 물리적 주소, 주소 바인딩 Logical address ( = virtual address) 프로세스마다 독립적으로 가지는 주소 공간 각 프로세스마다 0 번지부터 시작 CPU가 보는 주소는 logical address임 Physical address 메모리에 실제 올라가는 위치 주소 바인딩 주소를 결정 하는 것 Symbolic Address - > Logical Address - > Physical address 언제하는가?? Compile time binding : 물리적 메모리 주소가 컴파일 시 알려짐 Load time binding : Loader의 책임 하에 물리적 메모리 주소 부여 Execution time binding ( = Run time binding) 프로그램 실행 중에도 프로세스의 메모리 상 위치를 옮길 수 있..
운영체제(9) - 고전적인 동기화 문제들 이전 포스팅에서는 동기화 도구인 Semaphores와 Monitor를 알아보았다 이번 포스팅에서는 고전적인 동기화 문제들 3가지를 살펴보겠다. Bounded- Buffer Problem ( Producer - Consumer Problem ,유한 버퍼 문제) 그림과 같이 버퍼가 존재한다고 가정하자 Producer, 생산자 프로세스는 공유 버퍼에 데이터를 하나 만들어서 넣는 역할 Consumer, 소비자 프로세스는 공유 버퍼에서 데이터를 꺼내는 역할 만약 둘 이상의 생산자가 버퍼를 동시에 보고 데이터를 만들어 넣는다면 문제가 발생할 수 있다. 마찬가지로 둘 이상의 소비자가 동시에 동일한 버퍼의 데이터를 사용한다면 문제가 발생할 수 있다. 그러므로 동시에 버퍼에 접근할 수 없도록 락을 걸어줘야 한다. 락을 ..

반응형