목록전체 글 (89)
HS_development_log
교착상태(Deadlock) 교착상태(Deadlock) 여러 프로세스 들이 각자 자원을 점유하고 있으면서 다른 프로세스가 점유하고 있는 자원을 요청하면서 무한하게 대기하는 상태 시스템 자원 : CPU, 기억장치, I/O장치 ,파일, 세마포어 등 프로세스가 자원을 사용하려면 다음 순서로 수행한다 요청(request) : 요청이 즉시 허용되지 않는 경우, 자원을 얻을때까지 대기한다 사용(use) 해제(release) or 반환 교착상태 조건 상호배제(Mutual exclusion) 한 번에 오직 한 프로세스만이 자원을 사용할 수 있다 점유와 대기(Hold and wait) 프로세스가 적어도 하나의 자원을 점유하면서 다른 프로세스가 점유하고 있는 자원을 추가로 얻기 위해 대기한다 비선점(No preemption..
동기화(Synchronization) * 프로세스와 쓰레드 모두 해당되는 문서입니다. 편의를 위해 프로세스로 작성하였습니다 동기화(synchronization) 병행 프로세스들이 서로 데이터를 주고 받으면서 수행 될 때, 이 프로세스들 간의 동기화가 필요하다 병행 프로세스들이 공유 데이터에 접근할 때, 병행 접근하면 데이터의 일관성(data consistency)이 잘못될 수 있다 데이터의 일관성을 유지하려면 데이터 접근을 순서화 해야한다. 임계 구역(Critical Section) 각 프로세스는 공유 데이터를 접근하는 코드 세그먼트를 갖고 있는데 이것을 임계 구역 이라고 함 임계 구역 문제 임계 구역의 수행을 순서화 해서 수행하자 오직 한 프로세스 만이 임계 구역을 수행하게 하자 문제 해결 각 프로세스..
CPU 스케줄링 CPU 스케줄링 이란? 준비 큐의 프로세스들 중에서 CPU를 할당할 순서를 정하는 것 운영체제의 단기 스케줄러가 수행함 언제 CPU 스케줄링을 할까? 실행 상태에서 대기 상태로 전환될 때 실행 상태에서 준비 상태로 전환될 때 대기 상태에서 준비 상태로 전환될 때 종료할 때 CPU 스케줄링 기준 CPU 사용률(Utilization) 단위 시간당 CPU 사용시간의 비율 처리량(Throughput) 단위 시간당 완료된 프로세스의 개수 반환시간(Turnaround time) 특정 프로세스를 실행하는데 걸린 총 시간 대기시간(Waiting time) 프로세스가 준비 큐에서 대기하면서 기다린 시간의 합 응답시간(Response time) 작업을 요청한 후 첫번째 응답이 나올 때까지의 시간 선점(pr..
멀티 프로세스 vs 멀티 쓰레드 멀티 프로세스 장점 여러 개의 자식 프로세스 중 하나에 문제가 발생하면 그 자식 프로세스만 죽는 것 이상으로 다른 영향이 확산되지 않는다. 단점 CPU가 프로세스를 교체할때 발생하는 문맥교환으로 인해 오버헤드가 발생한다 프로세스간 자원 및 정보를 교환하기 어렵다 멀티 쓰레드 장점 쓰레드 끼리는 자원을 공유하므로 메모리 공간과 시스템 자원소모가 줄어들게 된다. 문맥 교환시, 캐시 메모리를 비울 필요가 없기 때문에 비용이 적고 빠르다 따라서 시스템 처리량이 향상되고 자원소모가 줄어들며, 프로그램 응답 시간이 단축된다 단점 서로 자원을 공유하기 때문에 동시에 자원에 접근하면 동기화 문제가 발생할 수 있다 하나의 스레드에 문제가 생기면 전체 프로세스가 영향을 받는다 왜 멀티 쓰레..