CS기초/운영체제
-
교착 상태, 경쟁 조건/상태, 세마포어와 뮤텍스, 메모리 관리CS기초/운영체제 2022. 5. 19. 15:02
데드락(=교착 상태)이 발생하는 경우 멀티 프로그래밍 환경에서, 두 프로세스가 서로 원하는 자원이 다른 프로세스에 할당되어 있어서 무한정 기다리고 있을 때 발생한다. 데드락 발생 조건 4가지 모두 성립해야 데드락 발생 (하나라도 성립하지 않으면 데드락 문제 해결 가능) 상호 배제(Mutual exclusion)자원은 한번에 한 프로세스만 사용할 수 있음 점유 대기(Hold and wait)최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용하고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 존재해야 함 비선점(No preemption)다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없음 순환 대기(Circular wait)프로세스의 집합에서 순환 형태로 자원을 ..
-
컴퓨터 구조, 프로세스 (메모리 구조, 상태 전이, 스케줄링)CS기초/운영체제 2022. 5. 17. 14:44
프로그램 작업 수행을 위한 일련의 명령어들의 모음 프로세스 디스크에 적재되어있던 프로그램이 운영체제의 PCB(Process Control Block)를 받아, 메인 메모리에 적재된 상태 운영체제는 프로세스 테이블을 사용해 각 프로세스 PCB를 관리한다. - Stack : 함수 호출 시 관련 지역변수, 매개변수같은 임시 데이터가 저장되는 곳. 컴파일 타임에 크기가 결정되기 때문에 무한히 할당할 수 없고 stack 영역을 초과하면 stack overflow 에러가 발생한다. - Heap : 동적으로 할당되는 데이터가 저장되는 곳으로 런타임에 크기가 결정됩니다. ex) malloc - Data Uninitialized data (bss) - 초기화되지 않은 변수(전역 변수, static 변수)가 저장되는 곳...