운영체제
-
[OS] Unix, Linux 파일(inode) 구성요소운영체제 2020. 11. 30. 16:29
Inodes (Index node) UNIX 에서 파일을 관리하는데에 있어서 필요한 자료구조 파일 모드 소유자명 그룹명 파일 크기 마지막 접근 정보 마지막 수정 정보 아이노드 수정 정보 Unix 파일 시스템 구성 요소 Boot block : 운영체제를 부팅하는데에 필요한 코드 Super block : 파티션 크기, inode 테이블 크기, 파일시스템 속성을 저장하는 공간 Inode table : 파일 inode 의 집합 Data blocks : 실제 파일 데이터가 저장되는 공간 파일이 데이터 블럭을 직접 지정하여 관리할수도 있음 파일의 크기가 큰 경우 간접 지정 방식을 통해 데이터 블럭을 지정할 수 있으며 이론적으로는 500GB까지도 가능 File Attributes (파일 속성) 이름 식별자 : 파일 ..
-
[OS] 파일 구조 유형운영체제 2020. 11. 30. 16:26
파일 구성 Variable size record : 레코드를 필요한 사이즈만큼만 할당하는 방식 Fixed size record : 레코드를 고정된 사이즈만큼 할당하는 방식 : internal fragmentation 발생 파일 유형 Dummy file 파일 내에 데이터를 쓴 순서대로 쌓아두는 방식 어떤 레코드를 검색하려면 전수조사해야함 파일은 파일의 시작 주소와 끝 주소만 관리함 Sequential(순차) 파일 해당 레코드를 대표하는 Key field 를 하나 지정하여 관리됨. 단점 : 검색이 느림 (특히 key field 가 아닌 field 로의 검색) Index Sequential(인덱스 순차) 파일 순차 파일에서 key field 가 아닌 field 로의 검색을 위함 field 가 여러개이면 인덱스..
-
[OS] 파일 시스템 개요운영체제 2020. 11. 30. 16:26
Files 파일 : 데이터의 집합 특성 : 장기간 보존, 프로세스간의 공유 가능, 편리한 내부 구조(계층 구조, 연관 관계) Contiguous logical address space 에 저장됨 ( Physical address 와는 무관 ) 종류 : 데이터 파일, 프로그램 파일 : 확장자로 구분 텍스트 파일 소스 파일 실행 파일 : 로더가 메모리로 가져와 실행할 수 있는 파일 File Structure Field : 데이터의 가장 작은 단위 : 고정 or 가변 길이 Record : 필드의 집합 : 고정 or 가변 길이 File : 레코드의 집합 Database : 관련된 데이터의 집합 File Systems 데이터를 파일로 저장하고, 다양한 기능을 제공 Create(생성) 파일 시스템 내에 공간을 할당..
-
[OS] Deadlock handling (2)운영체제 2020. 11. 29. 18:59
Deadlock 이 발생하도록 놔두고 탐지한 뒤 복구하는 방법 Deadlock detectionSingle instance resource wait-for 그래프를 통해 탐지 Resource allocation graph 에서 리소스를 제거하여 프로세스간의 의존 관계를 표현한 뒤 cycle 을 찾음 Serveral instances resource Work = Available allocation[i] 가 0 이면 Finish[i] = true, 0이 아니면 Finish[i] = false : Deadlock 여부를 판단할 때 hold and wait 특성에 의해 자원을 갖고 있지 않은 프로세스에 대해 체크하는 것은 무의미 하기 때문 Finish[i] == false 이면서 Request[i]
-
[OS] Deadlock handling (1)운영체제 2020. 11. 29. 18:58
Deadlock handling Deadlock 이 발생하지 않도록 막는 방법 Deadlock prevention 직접적으로 4가지 조건을 막는 방법. 장치 사용률/시스템 처리량 저하 Mutual exclusion : 공유 가능한 자원은 배타적 접근을 요구하지 않음 (공유해야 되는것만 공유하자) Hold and wait : 이미 공유 자원을 점유한 프로세스는 다른 자원을 요청할 수 없음 프로세스 실행 시 모든 자원을 할당 받은 뒤 실행 : 낮은 자원 이용률 이미 가진 자원을 release 한 상태에서만 요청 가능 : Starvation 발생 가능 A 를 가지니 B가 필요하고, B를 위해 A를 해제하니 A가 다시 필요해져서 무한히 반복.. No preemption : 이미 공유 자원을 점유한 프로세스가 즉..
-
[OS] Deadlock 과 Resource allocation graph운영체제 2020. 11. 29. 18:57
Deadlock Deadlock : 아무것도 하지 못하고 서로 대기하는 상황 Livelock : 뭔가 하고는 있는데(busy wait) 의미가 없는것 Resource 의 종류 CPU cycles, memory space, I/O devices, mutex lock, semaphore 등 유형 Single instance : 리소스에 가용한 인스턴스가 1개 뿐인 것 Multiple instance Deadlock 특성 Mutual exclusion : 어떤 리소스에 대해 한 순간에 하나의 프로세스만 접근할 수 있음 Hold and wait : 프로세스가 어떤 리소스를 갖고 있는데 다른 리소스를 추가로 요청 No preemption : 리소스들이 선점을 허용하지 않음 Circular wait : 위 세 가지..
-
[OS] Monitor, Condition variable(조건변수)운영체제 2020. 11. 28. 04:45
Monitors 공유 자원의 접근을 Monitor 객체 내부에서만 할 수 있게 제한을 둠 ( C/C++ 은 지원하지 않고, java 가 주로 모니터 기법을 사용) Condition variable(조건변수) mutex 간의 순서를 보장하기 위함 조건변수 x, y 를 정의 x.wait() : 이 함수를 호출한 프로세스는 대기 x.signal() : 대기중인 프로세스가 있다면 x.wait() 를 호출한 프로세스 중 하나가 실행됨. 대기중인 프로세스가 없다면 아무일도 일어나지 않음 Semaphore 의 signal() 이 항상 S++ 을 하여 그 상태에 영향을 주는것과는 다름 Signal 을 보낸다는 것은 해당 프로세스가 Lock 을 얻었음을 의미 Signal and wait : signal 을 주고, 내가 ..