728x90
반응형

Embedded system/[KOCW] 운영체제

728x90
반응형
Embedded system/[KOCW] 운영체제

[운영체제] 파일 시스템 구현 2 (Unix, FAT 파일 시스템, Bit Map, Linked List, Grouping, Counting)

파일 시스템 종류 파일시스템은 저장매체나 운영체제에 따라 사용이 제한되며, 아래와 같은 종류가 있다. exFAT : USB에 자주 사용되는 파일 시스템 (File Allocation Table) NTFS : 윈도우 운영체제에서 사용되는 파일 시스템 (New Technology File System) ext, ext2, ext3, ext4, xfs : 리눅스 운영체제에서 사용되는 파일 시스템 (Extended File System) UNIX 파일 시스템 아래의 구조는 가장 기본적인 파일 시스템 구조이며, 이 구조로부터 발전하면서 FAT, Ext 등등이 생겨났다. 하나의 논리적 디스크에 파일 시스템을 설치해 놓으며, Boot, Super, Inode, Data block 순서대로 저장이 된다. Boot Bl..

Embedded system/[KOCW] 운영체제

[운영체제] 파일 시스템 구현 1 (연속 할당, 연결 할당, 색인 할당)

Storage에 있는 데이터를 접근하는 방식에는 Sequential Access (순차 접근)과 Direct Access(직접 접근)이 있다. 매체에 따라서 tape 같은 것들은 순차 접근만이 되고, 하드 디스크나 플래시 메모리 같은 매체들은 직접 접근이 가능하다. ​ 직접 접근이 가능한 매체라고 하더라도 데이터를 어떻게 관리하느냐에 따라 순차 접근만 허용하는 경우도 있고 직접 접근이 가능한 경우도 있다. ​ ✓ Allocation of File Data in Disk 연속 할당 (Contiguous Allocation) 연결 할당 (Linked Allocation) 색인 할당 (Indexed Allocation) 파일 시스템은 디스크를 논리적인 디스크 블록들의 집합으로 보며, 디스크 블록은 0, 1, ..

Embedded system/[KOCW] 운영체제

[운영체제] 파일 시스템 (File Open, File Descriptor, File System Mount)

[ File System ] 파일은 하드 디스크에 이름을 가지고 저장한다. 메모리는 주소를 통해서 접근하는 장치인 반면 파일은 이름을 통해서 접근한다. 리눅스 같은 운영체제에서는 장치들을 관리하기 위해서 파일이라는 이름을 사용해서 관리하기도 한다. 다양한 저장 장치들을 서로 다른 파일로 관리하고 있으며 이러한 파일을 Device Special File이라고 한다. 일반적으로 우리가 접근하는 파일과는 약간 다른 개념이다. ​ '이름'을 입력으로 받아 해당 데이터를 리턴해주는 소프트웨어가 바로 파일 시스템이다. 파일 시스템이 하드 디스크에 저장하는 정보는 크게 메타 데이터와 사용자 데이터로 나뉜다. 메타 데이터 : 파일의 속성 정보나 데이터 블록 인덱스 정보 사용자 데이터 : 사용자가 실제 기록하려고 했던 ..

Embedded system/[KOCW] 운영체제

[운영체제] Virtual Memory 7 (Page-Falut Frequency)

[ PFF (Page-Fault Frequency) ] 멀티프로그래밍 Degree를 조절하면서 Thrashing을 방지하는 알고리즘이다. 이 방식은 Working-Set 알고리즘처럼 Working-Set을 추정하는 방식이 아니라 직접 Page Fault Rate을 본다. ​ 현재 시점에 이 시스템에서 Page Fault가 얼마나 일어나는지를 보고, 특정 프로그램이 Page Fault를 얼마나 내는지 본다. 프로그램이 Page Fault를 많이 내고 있으면, 이 프로그램의 Working-Set은 메모리에 보장이 안 되어 있는 상태라고 판단하여 페이지를 더 내어준다. ​ 보통 일반적으로 프로그램에 할당되어 있는 메모리의 크기가 커지면 Page Fault 발생 비율이 줄어든다. 프로그램의 상황에 따라 곡선의 ..

Embedded system/[KOCW] 운영체제

[운영체제] Virtual Memory 6 (Working Set)

[ Working-Set ] 프로그램들이 메모리에서 원활하게 실행이 되려면 어느 정도의 Page Frame을 갖고 있어야 한다. 또한, 프로그램은 특정 시간에는 특정 메모리 위치만 집중적으로 참조하는 특징이 있다. (Reference의 Locality) ​ 예를 들어, for Loop가 실행이 되고 있는 동안에는 Loop를 구성하는 페이지만 집중적으로 참조가 된다. 프로그램이 실행이 되면 함수 구조로 되어있는데, 그 함수를 구성하는 페이지만 집중적으로 참조한다. Working Set은 적어도 한꺼번에 올라와 있도록 보장해 줘야 Page Fault가 자주 발생하지 않는다. ​ 동시에 너무 많은 프로그램들이 메모리에 올라가 있으면 Working Set을 보장할 수 없는 상태가 된다. ​ 예를 들어, Work..

Embedded system/[KOCW] 운영체제

[운영체제] Virtual memory 5 (Page Frame 할당, Thrashing)

[ Page Frame 할당 ] 프로그램 여러 개가 물리적 메모리에 같이 올라와 있는데, 어떤 프로세스의 페이지인지 무관하게 그냥 가장 오래된 페이지를 쫓아냈다. 그런데 프로그램들이 CPU에서 실행이 되면서 Page Fault를 내지 않고 원활하게 실행이 되려면 일련의 페이지들이 다 같이 올라와 있어야 효율적이다. ​ 예를 들어, Instruction을 실행할 때 Loop를 돌고 있는데 그 for 문에 속한 페이지가 3개라고 해보자. 그럼 이 프로그램한테 이 세 개의 페이지를 할당해야 Page Fault가 일어나지 않는다. 즉, for 문을 백만 번 돌고 있을 때, 이 프로그램에게 3개의 페이지만 할당해 주면 Page Fault가 일어나지 않는다. 만약 이 프로그램에게 Page 두 개를 할당시키면 100..

Embedded system/[KOCW] 운영체제

[운영체제] Virtual memory 4 (Paging System에서 LRU, LFU, Clock Algorithm)

[ Paging System에서 LRU, LFU 사용 가능? ] 만약 CPU에서 프로세스 A가 Running 중일 경우, 프로세스 A의 논리적인 메모리에서 Instruction을 하나씩 읽어와서 실행한다. CPU가 프로세스 A에 대한 논리적 주소를 주면 Page Table을 통해서 물리적 메모리 주소로 변환하여 해당 주소의 내용을 CPU로 읽어 들어야 한다. 주소 변환 후, 해당 페이지가 물리적 메모리에 올라와 있으면 물리적 메모리에서 직접 내용을 읽어 CPU로 가져간다. 이 과정에서 운영체제가 하는 일은 없다. 주소 변환은 하드웨어적으로 일어나는 일이며, CPU는 프로세스 A가 가지고 있으면서 주소 변환 후 메모리 참조를 한다. ​ 반면에 프로세스 A가 Running 하면서 주소 변환을 요청했는데 In..

Embedded system/[KOCW] 운영체제

[운영체제] Virtual memory 3 (다양한 캐싱 환경, Paging System, Cache Memory, Buffer Caching, Web Cacging)

● 다양한 캐싱 환경 Replacement 알고리즘은 가상 메모리 시스템에서만 사용되는 게 아니라 Caching이라는 다양한 곳에서 사용이 되고 있다. 한정된 빠른 공간에다 데이터를 저장해 놓고, 다음에 똑같은 요청이 왔을 때 느린 저장 장치까지 가지 않고 Cache로부터 바로 서비스를 한다. 속도가 더 빠르다. ​ ✓ Paging System Paging System에서는 한정된 빠른 공간이 메인 메모리이고 느린 저장 장치가 Backing Store이다. 그래서 가능하면 물리적 메모리에서 서비스를 하며, 메모리에 올라와 있지 않을 때 (Page Fault)에만 Backing Store에서 읽어온다. ✓ Cache Memory CPU가 메모리에 접근할 때, 메모리에 직접 접근하는 게 아니라 CPU와 Ma..

728x90
반응형
라닝
'Embedded system/[KOCW] 운영체제' 카테고리의 글 목록