본문 바로가기

CS/운영체제&컴퓨터구조11

교착 상태(dead lock) 교착상태 정의 교착 상태(dead lock)란 두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태입니다. ex) 식사하는 철학자 교착상태 발생조건 아래 4가지 조건을 모두 충족할 경우에만 교착상태가 발생할 확률이 있으며, 하나라도 만족하지 않을 경우에는 발생하지 않습니다. 상호배제 : 프로세스들이 필요로 하는 자원에 대해 배타적인 통제권을 요구 점유와 대기 : 프로세스가 할당된 자원을 가진 상태에서 다른 자원을 기다림 비선점 : 프로세스가 어떤 자원의 사용을 끝낼 때까지 그 자원을 뺏을 수 없음 원형 대기 : 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있음 교착상태 해결 방법 상호배제 : 모든 자원을 공유 가능하게 만.. 2022. 11. 3.
프로세스 동기화 1. 동기화 동기화는 프로세스를 올바른 순서대로 실행하고, 동시에 접근해서는 안 되는 자원에는 하나의 프로세스만 접근하도록 제어하는 것을 말합니다. 만약 두 개 이상의 프로세스가 동시에 데이터에 접근할 경우에는 어떤 순서로 데이터에 접근했는지에 따라서 결괏값이 달라질 수 있으며 이를 레이스 컨디션(경쟁상태)이라고 합니다. 2. 공유자원 공유자원은 공동으로 사용하는 자원으로 전역변수나 입출력 장치, 보조기억장치 등이 될 수 있습니다. 3. 임계구역 임계 구역은 공유자원에 접근하는 코드 중 레이스 컨디션이 발생할 수 있는 특정 부분을 의미합니다. 이러한 임계 구역으로 발생하는 문제를 해결하기 위해서는 3가지 원칙이 지켜져야 합니다. 상호 배제 : 이미 작업 중인 프로세스가 있으면 다른 프로세스는 임계 구역에.. 2022. 11. 3.
CPU 스케줄링과 알고리즘 1. CPU 스케줄링 CPU 스케줄링은 작업을 처리하기 위해서 프로세스들에게 CPU 자원을 효율적으로 배분하는 것을 말합니다. 2. 스케줄링 큐(queue) 구분 설명 job queue 시스템 내에 있는 모든 프로세스의 집합 ready queue 메인 메모리에 상주하면서 실행될 준비를 하고 기다리는 프로세스 집합 waiting(or device) queue 특정 입출력 장치를 대기하는 프로세스 집합 3. 선점형 비선점형 스케줄링 구분 특징 장점 단점 선점형 스케줄링 운영체제가 프로세스가 사용중인자원을 빼앗아 다른 프로세스에 할당가능 높은 우선 순위를 가진 프로세스를 빠르게 처리하려는 시스템에 유용 빠른 응답 시간을 요구하는 시분할 시스템에 유용 문맥교환 빈번 ->오버헤드 발생 가능 비선점형 스케줄링 프로.. 2022. 11. 3.
프로세스 상태와 스레드 프로세스 상태와 스레드 1. 프로세스 상태 상태 설명 생성 -> 준비 프로그램을 커널에 등록한 상태, PCB를 할당하고 프로세스를 생성한 상태 준비 -> 실행 프로세서 외에 모든 자원을 할당 받은 상태, 프로세서만 할당 되면 바로 실행 가능한 상태 실행 -> 준비 or 대기 프로세서와 모든 자원을 할당 받은 상태 대기 -> 준비 프로세서 외에 다른 데이터를 기다리는 상태 종료 프로세스가 종료된 상태. PCB와 메모리 정리 2. 스레드 스레드는 프로세스를 구성하는 실행되는 흐름의 단위를 말합니다. 그리고 하나의 프로세스에 둘 이상의 스레드를 실행 하는 방식을 멀티스레드라고 합니다. 3. 멀티프로세스와 멀티스레드 차이 구분 특징 장점 단점 멀티프로세스 프로세스끼리 자원을 공유하지 않음 (기본적으로 자원을 공.. 2022. 11. 2.
PCB(Process Control Block)와 문맥교환(Contect Switching), 메모리 공간의 구조 PCB(Process Control Block)와 문맥교환(Contect Switching), 메모리 공간의 구조 1. PCB(커널영역) PCB는 운영체제가 프로세스를 제어하기 위해 정보를 저장해 놓는 곳으로 프로세스 상태관리와 문맥교환을 위해 필요합니다. 2. PCB에 포홤되는 정보 종류 설명 프로세스 ID(PID) 프로세스를 구분하는 고유 아이디 레지스터 값 Accumulator, CPU Register, General Register 등 해당 프로세스가 사용했던 레지스터 값 프로세스 상태 CPU를 기다리는지 혹은 이용중인지 등의 프로세스 상태에 대한 정보 CPU스케줄링 정보 프로세스가 할당 순서 정보(우선순위, 최종실행시간, 점유시간 등) 메모리 관리 정보 프로세스가 저장된 주소 정보 사용한 파일과.. 2022. 11. 2.
커널(Kernel)과 시스템 콜(Syetem call) 커널(Kernel)과 시스템 콜(Syetem call) 커널은 컴퓨터 운영체제의 핵심이 되는 컴퓨터 프로그램으로 시스템의 모든 것을 완전히 통제합니다. 커널은 컴퓨터 하드웨어와 프로세스의 보안을 책임지며, 한정된 시스템 자원(CPU, Memory, Devices)을 효율적으로 관리하여 프로그램의 실행을 원활하게 합니다. 2. 사용자모드와 커널 모드 운영체제는 커널 공간에 있는 코드와 데이터를 보호하기 위해 사용자 모드와 커널 모드 두 가지 모드를 지원하며 사용자 모드의 경우 운영체제 서비스를 제공받을 수 없는 실행 모드로 일반적인 응용프로그램은 기본적으로 사용자 모드로 실행됩니다. 반면에 커널 모드는 운영체제 서비스를 제공받을 수 있으며 특권 명령어 실행과 원하는 작업 수행을 위한 자원에 접근이 가능한 .. 2022. 11. 2.