[CS] 운영체제 - Deadlock
·
Computer Science/Operating System
데드락이란 교착상태를 말한다. 일련의 프로세스들이 서로가 가진 자원을 기다리며 blcok된 상태를 말한다. Resource(자원) 자원은 하드웨어, 소프트웨어 등을 포함하는 개념이다. 예를 들어 I/O 장치, CPU cycle, memory space, semaphore 등이 있다. 프로세스가 자원을 사용하는 절차는 크게 4 단계를 거친다. request: 자원 요청 allocate: 자원을 획득 use: 자원을 사용 release: 자원을 반납 Deadlock 발생의 4가지 조건 데드락이 발생하려면 아래 4가지 조건을 모두 만족해야한다. Mutual exclusion(상호 배제): 매 순간 하나의 프로세스만이 자원을 사용할 수 있다. No preemotion(비선점): 프로세스는 자원을 스스로 내어놓을..
[CS] 운영체제 - 프로세스 동기화
·
Computer Science/Operating System
데이터의 접근 순서는 아래와 같다. 1. 저장된 곳에 있는 Data를 연산하는 곳으로 보낸다. 2. 연산하는 부분에서 연산 후 연산 결과를 다시 원래 위치로 보낸다. ex) CPU와 Memory (프로세스가 연산의 주체이고 주소공간이 저장소임) Race condition 예를 들어 저장소를 다른곳에서 동시에 사용할 때 문제가 생길 수 있다. 이 때 이러한 문제를 해결해야 한다. OS에서 Race condition 문제가 발생하는 상황은 다음과 같다. Kernel 수행 중 인터럽트 발생 시 커널모드 실행중 interrupt가 발생하여 인터럽트 처리루틴이 수행한다. 양 쪽 다 커널 코드 이므로 kernel address space가 공유된다. Process가 system call을 해서 kernel mode..
[CS] 운영체제 - CPU 스케줄링
·
Computer Science/Operating System
CPU Scheduler: Ready 상태의 프로세스 중에서 CPU를 줄 프로세스를 고른다. Dispatcher: CPU의 제어권을 CPU 스케줄러에 의해 선택된 프로세스에게 넘긴다. 이 과정을 context switch라고 한다. (실제로 CPU를 주는 과정이다.) CPU 스케줄링이 필요한 경우는 프로세스에게 다음과 같은 상태 변화가 있는 경우이다. Running에서 Blocked로 갈 때 (ex) I/O 요청하는 시스템 콜이 일어날 때) Running에서 Ready로 갈 때 (ex) 할당 시간 만료로 timer interrupt가 발생할 때) Blocked에서 Ready로 갈 때 (ex) 1번 완료후 인터럽트) terminate될 때 nonpreemptive: 비 선점형, 강제로 빼앗지 않고 자진해서..
[CS] 운영체제 - 프로세스 관리
·
Computer Science/Operating System
프로세스 생성 부모 프로세스가 자식 프로세스를 생성한다. 프로세스의 트리를 형성한다. 프로세스는 자원을 필요로 한다. 이러한 자원은 운영체제로부터 받으며, 부모와 공유한다. 자원 공유 종류는 크게 3가지가 있다. 부모와 자식의 모든 자원을 공유하는 모델, 일부를 공유하는 모델, 전혀 공유하지 않는 모델이 있다. 수행: 부모와 자식이 공존하며 수행되는 모델과 자식이 종료될 떄까지 부모가 기다리는 모델이 있다. 자식은 부모의 주소 공간을 복사하고, 그 공간에 새로운 프로그램을 올린다. Copy-on-write란 내용이 바뀔때 카피해서 새로운 내용을 만드는것을 말한다. 프로세스 종료 프로세스가 마지막 명령을 수행한 후 운영체제에게 알려준다. (exit라는 system call을 사용함) 프로세스 종료시 자식이..
얼은펭귄
'OS' 태그의 글 목록 (2 Page)