운영체제9 데드락(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. 멀티프로세싱, 멀티프로그래밍,멀티태스킹,멀티스레딩 1. 멀티 프로그래밍 (Multi-programming) 여러 프로그램을 메모리에 동시에 올려서 수행하는 것 == 메모리에 다수의 프로세스가 동시에 올라가(keep)있는 것 단일 프로세서 상에서 여러 개의 프로그램이 동시에 실행되는 것 프로세서가 입출력 작업의 종료를 대기할 동안 하나의 프로세서에서 다른 프로그램을 수행할 수 있도록 하는 것이 멀티프로그래밍이다. (CPU 사용 효율을 높인다) 초기의 컴퓨터에서는 하나의 프로그램이 메모리에 올라가면 하나의 프로그램만 CPU가 처리를 진행할 수 있었다. 이 과정에서 프로세서의 처리 속도와 입출력 속도 간의 차이로 인해, 입출력이 완료될 때까지 프로세서는 idle한 상태가 된다. 따라서 이는 프로세서의 자원 낭비로 이루어진다. 정의 : 하나의 프로세서에 대하여.. 2021. 5. 29. 운영체제란? 1. 운영체제 하드웨어를 관리하고, 응용 프로그램과 하드웨어 사이에서 인터페이스 역할을 하며 시스템의 동작을 제어하는 시스템 소프트웨어(시스템의 자원과 동작을 관리하는 소프트웨어) 2. 운영체제의 역할 1. 프로세스 관리 프로세스, 스레드 스케줄링 동기화 IPC 통신 운영체제에서 작동하는 응용 프로그램을 관리하는 기능이다. 어떤 의미에서는 프로세서(CPU) 관리하는 것이라고 볼 수도 있다. 현재 CPU를 점유해야 할 프로세스를 결정하고, 실제로 CPU를 프로세스에 할당하며, 이 프로세스 간 공유 자원 접근과 통신 등을 관리하게 된다. 2. 저장장치 관리 메모리 관리 가상 메모리 파일 시스템 1차 저장장치에 해당하는 메인 메모리와 2차 저장장치에 해당하는 하드디스크, NAND 등을 관리하는 기능이다. 1차.. 2021. 5. 29. 이전 1 2 다음