일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 스레드 동기화
- 경량 프로세스
- 뮤텍스(Mutex)
- The Banker's Algorithm
- The DIning Philosopher Problem
- 스레드
- 프로세스 상태 전이도
- 교착 상태
- 유저 모드의 동기화
- 프로세스
- 은행원 알고리즘
- 블로킹 논블로킹
- Reentrant
- 인터락 함수
- 커널 모드
- 임계 구역
- Activity
- 프로세스 제어 블록
- 유저 모드
- Non-Preemptive
- Light Weight Process
- 방금 그 곡
- 문맥 교환
- 커널 모드의 동기화
- Heap영역
- Multi-level Queue
- Stack영역
- Process Control Block
- 모니터(Monitor)
- 동기 비동기
목록컴퓨터과학/운영체제 (23)
Blog For Me
파일들은 정보를 저장한다. 파일이 사용될 때, 이 정보는 반드시 접근되어서 컴퓨터 메모리에 적재되어야 한다. 파일 내의 정보에 접근하는 몇몇의 방법이 있는데, 어떤 시스템은 오직 파일 접근 방법이 한 가지밖에 없다. 반면에, IBM mainframe 운영체제와 같은 다른 시스템들은 수많은 접근 방법들을 제공한다. 순차접근 (Sequential Access) 가장 간단한 접근 방법 파일 내의 정보들이 순서대로 처리되는데, 저장되어 있는 레코드 순서로 접근한다. 이 접근 모드는 가장 일반적이며, 편집기나 컴파일러는 보통 이러한 방식으로 파일에 접근한다. 읽기와 쓰기가 파일 연산의 대부분을 차지하고 있다. 읽기 연산은 파일의 다음 부분부터 읽어 나가며 자동적으로 입출력 위치를 추적하는 파일 포인터를 증가시킨다..
파일이란? 보조 기억 장치에 기록되어 있는 관련된 정보들의 집합체 사용자 관점에서, 파일은 논리적 보조 저장 장치에서의 최소 할당 단위 파일 내부의 정보는 작성자에 의해 정의되며, 다양한 정보들이 파일 내에 저장된다. 운영체제는 논리적인 저장 단위를 디스크와 같은 물리적 저장장치에 매핑하여 저장된다. 대표적인 파일의 종류 text file: 사람이 인지할 수 있는 문자열 집합으로부터 문자열로만 이루어진 파일 source file: 실행해야 할 소스 문장들의 구성으로 이루어져 있으며 서브루틴이나 함수들의 집합체 executable file: 코드화된 명령에 따라 지시된 작업을 수행하도록 하는 컴퓨터 파일 파일의 속성 사용자의 편의를 위해 파일에 이름이 부여되고 그 이름은 문자열로 이루어져 있다. 파일의 속..
Deadlock Avoidance(교착상태 회피) 교착상태 회피는 교착상태에 빠질 가능성이 있는지 없는지를 운영체제가 검사하고 빠질 가능성이 없을 경우에만 자원을 할당하여 문제 발생을 피하는 방법이다. 우선 이를 판단하기 위해 상태를 안전 상태와 불안전 상태로 나누고, 운영체제는 안정상태를 유지할 수 있는 요구만 수락하고, 나머지 요구들은 안전상태를 만족할 때까지 계속 거절한다. 여기서 은행을 예로 들어보겠다. 100원을 가지고 있는 은행이 있고, 그 은행으로부터 돈을 빌리려는 3명의 고객이 있다. 고객은 필요한 돈이 있어야만 일을 해결할 수 있고, 빌린 돈을 상환할 수 있다. 이를 테면, 30원이 필요한 상황인데 수중에 20원만 있으면 일을 해결하지 못하고 돈을 다시 갚지도 못한다. 고객 1은 60원,..
1. 교착 상태(Dead lock) 한정된 자원을 여러 곳에서 사용하려고 할 때 발생하는 문제 프로세스가 공유 자원을 얻지 못하여 다음 작업을 처리하지 못하는 상황 프로세스 1과 프로세스 2가 모두 자원 A, 자원 B를 얻어야 한다고 할 때, 우선 프로세스 1은 자원 A를 얻었고 프로세스 2는 자원 B를 얻은 상태이다. 그리고 그 상황에서 프로세스 1은 자원 B를 기다리고, 프로세스 2는 자원 A를 기다리고 있다. 여기서 현재 서로 원하는 자원이 상대방에게 할당되어 있어 두 프로세스는 무한정 wait 상태에 빠지게 되고 이러한 상황을 deadlock(교착 상태)라 한다. 2. 교착 상태 발생 조건 교착 상태는 4가지 조건이 동시에 성립할 때 발생한다. 4가지 조건 중 하나라도 성립하지 않으면 교착 상태 ..
The Dining Philisophers Problem(식사하는 철학자 문제) 출처: Operating System Concepts tenth Edition, Abraham Silberschatz, Peter Baer Galvin, Greg Gagne 철학자 다섯 명이 원형 테이블에서 식사를 하려고 한다. 테이블 중앙에 음식이 있고, 다섯 개의 젓가락이 철학자 사이에 놓여 있다. 철학자가 배고파서 음식을 먹으려 할때 자신의 왼쪽과 오른쪽 젓가락을 잡으려고 하고, 두 젓가락을 잡아야 식사가 가능하다. 이후 식사가 끝나면 젓가락 두 개를 테이블에 놓고 다시 생각에 빠지는 상황이다. 철학자 문제 알고리즘은 다음과 같다. while(true) { wait(chopstick[i]); // 왼쪽 젓가락 집기 wa..
1. The Bounded-Buffer Problem 여기에서는 두 종류의 프로세스가 있는데, 하나는 Producer 프로세스, 또 다른 하나는 Consumer 프로세스이다. 즉, 이는 생산자-소비자 문제(Producer-Consumer Problem)이라고도 불린다. Producer 프로세스는 데이터를 만들어 버퍼에 삽입하고, Consumer 프로세스는 버퍼에서 데이터를 꺼내는 역할을 수행한다. 여기서 발생할 수 있는 문제점은 어느 생산자 프로세스가 버퍼 중 빈 곳에 데이터를 쓰려고 할때, Interrupt가 발생하여 다른 프로세스한테 공유자원이 넘어가서 다른 프로세스가 해당하는 빈 곳에 데이터를 쓸 때 나타날 수 있다. 그렇게 되면 둘 중에 한 프로세스의 데이터가 유실될 수 있을 가능성이 농후하기 때..