개발자를 위한 컴퓨터 공학20 29. 교착 상태 해결방법 ● 교착 상태 해결 : 예방, 회피, 검출 후 회복 1. 교착 상태 예방애초에 교착 상태가 발생하지 않도록 교착상태 발생 조건(상호 배제, 점유와 대기, 원형 대기) 중 하나를 없애버리기점유와 대기를 없애기 위해 특정 프로세스에 자원을 모두 할당하거나, 아예 할당하지 않는 방식으로 배분➤자원의 활용률을 낮출 수 있는 방식이다비선점 조건을 없애면? 선점이 가능한 자원에 한해 효과적➤모든 자원이 선점 가능한 것은 아니다원형 대기 조건을 없애면? 자원에 번호를 붙이고 오름차순으로 할당하면 원형 대기는 발생하지 않는다➤자원에 번호를 붙이는 것은 어려운 작업이며 어떤 자원에 번호를 붙이느냐에 따라 활용률이 달라진다즉, 교착 상태가 발생하지 않음은 보장할 수 있으나 부작용이 따르는 방식이다.2. 교착 상태 회피교착.. 2024. 11. 13. 28. 교착상태_데드락 교착상태란 푸로세스가 일어나지 않을 사건을 기다리며 진행이 멈춰버리는 현상이다. 이러한 교착상태를 해결하기 위해서는교착 상태가 발생했을 때의 상황을 정확히 표현한다.교착 상태가 일어나는 근본적인 이유를 이해한다.1. 교착 상태가 발생하는 상황 표현교착 상태 발생 조건 파악어떤 프로세스가 어떤 자원을 할당 받아 사용 중인지 확인어떤 프로세스가 어떤 자원을 기다리고 있는지 확인위의 조건을 바탕으로 자원 할당 그래프를 그려본다면 아래와 같다. 이처럼 교착 상태가 일어나는 그래프의 특징은 그래프가 원의 형태를 보인다는 것이다. 2. 교착 상태가 일어나는 근본원인 파악 교착상태가 발생할 조건상호 배제 : 한 프로세스가 사용하는 자원을 다른 프로세스가 사용할 수 없는 상태점유와 대기 : 자원을 할당 받은 상태에서 .. 2024. 10. 31. 27. 동기화 기법 1. 뮤텍스 락상호 배제를 위한 동기화 도구(자물쇠 역할)뮤텍스 락의 단순한 형태 전역 변수 하나, 함수 두 개자물쇠 역할 : 프로세스들이 공유하는 전역 변수 lock임계 구역을 잠그는 역할 : acquire 함수임계 구역의 잠금을 해제하는 역할 : release 함수 acquire 함수프로세스가 임계 구역에 진입하기 전에 호출임계 구역이 잠겨 있다면임계 구역이 열려 있다면 release 함수임계 구역에서의 작업이 끝나고 호출현재 잠긴 임계 구역을 열기(lock을 false로 바꾸기)2. 세마포좀 더 일반화된 방식의 동기화 도구공유 자원이 여러 개 있는 경우에도 적용 가능세마포의 단순한 형태 전역 변수 하나, 함수 두 개임계 구역에 진입할 수 있는 프로세스의 개수(사용 가능한 공유 자원의 개수)를 나타.. 2024. 10. 30. 26. 동기화 동시다발적으로 실행되는 프로세스와 스레드들은 서로 협력하며 영향을 주고받는다. 이 과정에서 자원의 일관성을 보장해야 한다.그러기 위해서는 프로세스들의 동기화를 고려해야 한다.1. 동기화의 의미프로세스 동기화란 프로세스들의 수행 시기를 맞추는 것실행 순서 제어 : 프로세스를 올바른 순서대로 실행하는 것상호 배제 : 동시에 접근해서는 안 되는 자원에 하나의 프로세스만 접근하게 하는 것1) 실행 순서 제어를 위한 동기화 : reader writer problemWriter : Book.txt 파일에 값을 저장하는 프로세스Reader : Book.txt 파일에 저장된 값을 읽어 들이는 프로세스 Reader와 Writer 프로세스는 실행의 순서가 있다. Reader 프로세스는 'Book.txt 안에 값이 존재한.. 2024. 10. 30. 25. CPU 스케줄링 알고리즘 1. 선입 선처리 스케줄링FCFS_first come first served 스케줄링준비 큐에 삽입된 순서대로 처리하는 비선점 스케줄링먼저 CPU에 요청한 프로세스부터 CPU 할당프로세스들이 기다리는 시간이 매우 길어질 수 있다는 부작용= 호위효과2. 최단 작업 우선 스케줄링SFF_shortest job First 스케줄링호위효과를 방지하기 위한 방법CPU 사용이 긴 프로세스는 나중에 실행, CPU 사용 시간이 짧은 프로세스는 먼저 실행CPU 사용 시간이 가장 짧은 프로세스부터 처리하는 스케줄링 방식선점형 비선점형 모두 적용 가능하지만 기본적으로 비선점형 스케줄링에 해당한다.3. 라운드 로빈 스케줄링RR_round robin 스케줄링선입선처리 스케줄링 + 타임 슬라이스타임 슬라이스 : 각 프로세스가 CP.. 2024. 10. 28. 24. CPU 스케줄링 1. 프로세스 우선순위CPU 스케줄링은 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것을 말한다.일반적으로 입출력 작업이 많은 프로세스의 우선순위는 CPU작업이 많은 프로세스의 우선순위보다 높다.우선순위는 프로세스의 PCB에 저장되어 운영체제는 PCB를 보고 CPU를 얼마나 사용할지 결정한다.2. 스케줄링 큐운영체제가 효율적으로 프로세스의 PCB를 확인하고 자원을 이용할 프로세스의 순서를 결정하기 위해, 프로세스들이 필요한 자원에 대기하는 줄이 스케줄링 큐다.-준비큐와 대기큐3. 프로세스 상태 다이어그램 4. 선점형과 비선점형 스케줄링 위와 같은 상황에서 CPU는 현재 CPU를 사용 중인 프로세스로부터 CPU 자원을 빼앗을지 끝날 때까지 기다리는지에 따라 선점형 비선점형으로 나뉜다.. 2024. 10. 26. 이전 1 2 3 4 다음