본문 바로가기

23년 1학기 학교공부/운영체제및실습

(30)
[OS] File 📁 File 파일이란 보조기억장치 내부에 저장돼서 전원이 없어도 지워지지 않는 정보의 저장단위이다.
[OS] Deadlock 처리 방법 📁 Deadlock 처리방법 1. 프로세스들이 아예 데드락에 걸리지 않도록 OS가 사전에 예방하는 방법 2. 데드락이 발생할 수는 있는데, 발생할 경우에 OS가 이를 감지하고 데드락을 풀어주는 방법. 3. OS가 데드락에 대해 아무것도 하지 않고 관리자인 사람이 해결하는 방법. 1, 2 방법이 좋아보이지만, OS가 사전에 예방하거나 데드락을 찾고 풀어주는 일은 시간이 많이 걸리기 때문에 컴퓨터 실행속도가 대폭 늦어지게 된다. 데드락은 몇 달에 한번 발생할 정도로 가끔 발생하는데 이런 현상을 대비하기 위해서 평소에 컴퓨터 동작 속도가 느려지는것은 불편하다. 때문에 세번째 방법이 현실적인 대안이다. 대부분의 유닉스, 윈도우즈, 리눅스와 같이 상용 운영 체제에서는 세번째 방법을 이용한다. 이 말은 OS 내부에..
[OS] Deadlock 📁 Deadlock 발생 조건 Deadlock이란 두 개 이상의 프로세스들이 절대로 발생할 수 없는 이벤트를 무한정 기다리는 상황이다. 위 그림은 deadlock이 발생하지 않는 프로그램이다. 데드락은 어떤 프로세스가 어떤 리소스를 가지고 있는 상태에서 다른 프로세스가 가진 리소스를 요청할 때 발생하는 것인데, 위 프로그램은 리소스 A를 가진 상태에서 A를 다 쓰고 놓은 후 B라는 리소스를 요청하고 다 쓰고 놓는 방식으로 동작한다. 즉 P는 데드락이 발생하지 않는 프로그램이고, Q는 발생할 가능성이 있는 프로그램이다. 하지만 데드락이 발생하려면 P와 Q 둘 다 서로 리소스 하나를 가진 상태에서 다른 프로세스가 가진 것을 요청해야하는데, Q는 그렇게 동작하지만 P는 그렇지 않으므로 P와 Q 사이에는 데드락..
[OS] Use of Semaphores
[OS] Semaphore 📁 Semaphore testset 함수를 사용하는 하드웨어 방법의 단점을 극복하는 또 다른 하드웨어 지원 방법. semaphore는 음수, 0, 양수가 될 수 있는 만들어진 특별한 변수이다. semaphore 변수의 값을 증가시키는 함수와 감소시키는 함수가 운영체제 내에 미리 구현되어 있어서, 이들을 불러 값을 변경한다. semWait(s) : semaphore 값을 1 감소시킴. P(s), Wait(s), donw(s)라고도 부름. semSignal(s) : semaphore 값을 1 증가시킴. V(s), Signal(s), up(s), sem_post(s)라고도 부름. 이때 s는 프로그래머가 선언한 세마포어 이름. testset과 같이 하드웨어 지원을 받는 특별한 함수이며, 즉 automic하게 실..
[OS] Critical-Section Problem : Hardware Solution critical section problem에서 하드웨어 지원을 받는 해결방법 interrupt가 비활성화된 상태로 실행되는 특수한 instruction을 사용하는 방법이다. 즉 automic operation을 이용하는 방법. 지난 포스팅에서 설명했던 automic operation처럼 critical section을 automic operation으로 만들자는 것이 아니라, automic operation으로 만들어진 특수한 함수를 이용하여 entry section을 만들자는 것이다. 운영 체제 안에 개발자들이 미리 작성해놓은 특별한 함수가 있는데, 이는 automic으로 실행되며 아주 짧은 시간에 실행되기 때문에 그 사이에 interrupt를 비활성화시켜도 컴퓨터 운영에 큰 문제가 없다. 즉 위험성..
[OS] Critical-Section Problem : Software Solution 📁 Critical Secltion Problem n개의 프로세스들이 각자 자신의 critical section을 가지고 있다. critical section의 코드를 실행하며 서로 경쟁적으로 접근하는 상황에서 어떤 한 프로세스가 critical section을 실행하고 있으면 다른 프로세스들은 자신의 critical section을 실행하면 안된다, 즉 같은 데이터는 동시에 접근하지 못하도록 하라는 문제가 critical section problem이다. 📁 Critical Section Problem 해결책 다음 세가지 요구사항을 모두 만족해야 한다. 1. mutual exclusion 어느 순간에 하나의 프로세스만이 자원에 접근할 수 있고, 그동안에는 다른 프로세스들이 접근하지 못하도록 하는 성질...
[OS] Race Condition race condition은 cpu가 여러개인 컴퓨터 뿐만아니라 한개인 컴퓨터에서도 발생함. Producer/Consumer Problem이란 프로듀서 프로세스 P 여러개와 컨슈머 프로세스 C 여러개가 함께 작업을 하는 상황에서 발생하는 Race condition을 설명하는 문제. 아래 그림과 같음. 그림에서는 P가 여러개 C가 한개지만 P가 한개이거나 C가 여러개여도 됨. producer process는 정보를 생산하는 일을 하고, consumer process는 생산된 정보를 소비해서 다른 처리를 하는 일을 함. 이때 producer가 생산한 정보를 consumer에게 전달하기 위에 IPC를 이용한다고 가정해보자. 이 문제에서는 shared memory를 사용한다. 각 producer는 정보를 생산해..