본문 바로가기

Computer Science/운영체제10

데드락(Deadlock)이란? 데드락의 발생조건과 해결방안 1. Deadlock데드락이란? 운영체제에서 데드락(교착상태)이란, 시스템 자원에 대한 요구가 뒤엉킨 상태입니다. 둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 서로 기다릴 때 무한 대기에 빠지는 상황 2. 발생조건 상호 배제 한 번에 프로세스 하나만 해당 자원을 사용할 수 있다. 사용 중인 자원을 다른 프로세스가 사용하려면 요청한 자원이 해제될 때까지 기다려야 한다. 점유 대기 자원을 최소한 하나 보유하고, 다른 프로세스에 할당된 자원을 점유하기 위해 대기하는 프로세스가 존재해야 한다. 비선점 이미 할당된 자원을 강제로 빼앗을 수 없다(비선점). 순환 대기 대기 프로세스의 집합이 순환 형태로 자원을 대기하고 있어야 한다. 3. 해결방안 데드락이 발생하지 않도록 예방(prevention) 하.. 2021. 5. 31.
프로세스 간 데이터 공유(IPC), 스레드 간 데이터 공유 1. 프로세스 간 통신 IPC(Inter-process Communication) Cooperating processes require an IPC mechanism - that will allow them to exchange data - that is, send data to and receeive data from each other. A. 공유 메모리 shared memory 커널의 통신 서비스를 이용해 협력하는 프로세스들 사이에 공유되는 메모리 영역(shared memory)을 구축하는 방법이다. 메모리를 직접 접근하기 때문에 속도가 빠르고 사용이 편리하다. 문제점 : 프로세스A가 공유 메모리에 데이터 전달해도 프로세스B가 그것을 알 수 없다 => 별도의 동기화 기술이 필요하다. B. messa.. 2021. 5. 30.
PCB(Process Control Block) 프로세스 제어 블록이란? 1. PCB(Process control Block) PCB는 운영 체제가 프로세스를 표현한 것이다 특정한 프로세스를 관리할 필요가 있는 정보를 포함하는 운영 체제 커널의 자료 구조이다. 각 프로세스가 생성될 때마다 고유의 PCB가 생성되고, 프로세스가 완료되면 PCB는 제거됩니다. 2. 포함 정보 프로세스 식별자(Process ID) 프로세스 상태(Process State): 생성(create), 준비(ready), 실행(running), 대기(waiting), 완료(terminated) 상태가 있다. - 유예준비상태suspended ready, 유예대기상태suspended wait 는 스택이 아닌 disk에 저장된다. 프로그램 계수기(Program Counter): 프로그램 계수기는 이 프로세스가 다.. 2021. 5. 30.
문맥교환(context switching)과 오버헤드(overhead) 1. 문맥교환 Context Switching 하나의 프로세스가 CPU를 사용 중인 상태에서 다른 프로세스가 CPU를 사용하도록 하기 위해, 이전의 프로세스의 상태(문맥)를 보관하고 새로운 프로세스의 상태를 적재하는 작업 프로세스의 문맥(context)은 PCB에 저장된다. 인터럽트(interrupt)가 발생하면 시스템은 현재 수행 중인 프로세스의 문맥을 저장하고, 이후 해당 프로세스가 재개될 때 복원한다. 즉, 문맥교환이란 1.CPU 코어를 다른 프로세스로 교환 2. 현재 프로세스의 상태를 저장 3. 다른 프로세스의 상태를 복원하는 작업(task)를 말한다. 문맥교환시점 멀티태스킹 인터럽트 핸들링 사용자 모드와 커널 모드 간의 전환 2. 오버헤드 (Overhead) 어떤 처리를 하기 위해 들어가는 간접.. 2021. 5. 30.
논리게이트 AND OR NAND XOR NOR XNOR NOT buffer 정리 1. AND(논리곱) A B A AND B 0 0 0 0 1 0 1 0 0 1 1 1 2. OR(논리합) A B A OR B 0 0 0 0 1 1 1 0 1 1 1 1 3. NOT(논리부정) A NOT A 0 1 1 0 4. NAND(부정논리곱): AND 연산 결과를 NOT 연산 A B A NAND B 0 0 1 0 1 1 1 0 1 1 1 0 5. NOR(부정논리합): OR 연산 결과를 NOT 연산 A B A NOR B 0 0 1 0 1 0 1 0 0 1 1 0 6. XOR(배타적논리합): 서로 반대의 값을 가지면 참 A B A XOR B 0 0 0 0 1 1 1 0 1 1 1 0 7. XNOR(배타적부정논리합): XOR연산의 결과를 NOT 연산 A B A XNOR B 0 0 1 0 1 0 1 0 0 .. 2021. 5. 30.
멀티프로세싱, 멀티프로그래밍,멀티태스킹,멀티스레딩 1. 멀티 프로그래밍 (Multi-programming) 여러 프로그램을 메모리에 동시에 올려서 수행하는 것 == 메모리에 다수의 프로세스가 동시에 올라가(keep)있는 것 단일 프로세서 상에서 여러 개의 프로그램이 동시에 실행되는 것 프로세서가 입출력 작업의 종료를 대기할 동안 하나의 프로세서에서 다른 프로그램을 수행할 수 있도록 하는 것이 멀티프로그래밍이다. (CPU 사용 효율을 높인다) 초기의 컴퓨터에서는 하나의 프로그램이 메모리에 올라가면 하나의 프로그램만 CPU가 처리를 진행할 수 있었다. 이 과정에서 프로세서의 처리 속도와 입출력 속도 간의 차이로 인해, 입출력이 완료될 때까지 프로세서는 idle한 상태가 된다. 따라서 이는 프로세서의 자원 낭비로 이루어진다. 정의 : 하나의 프로세서에 대하여.. 2021. 5. 29.