교착 상태란? 둘 이상의 프로세스들이 자원을 점유한 상태(Hold)에서 서로 다른 프로세스가 점유하고 있는 자원을 요구(Request)하며 무한정 기다리는 현상입니다. 교착 상태 발생 조건 다음 네 가지 조건이 모두 만족되어야 Deadlock이 발생합니다. 1. 상호 배제 한 프로세스에 의해 점유된 자원을 다른 프로세스들이 접근할 수 없어야 한다. 2. 점유와 대기 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을 추가 로 점유하기 위해 대기하는 프로세스가 있어야 한다. 3. 비선점 프로세스가 자원을 비선점하고 있기 때문이다. 비선점 자원은 그 자원을 이용하는 프로세스의 작업이 끝나야만 비로소 이를 이용할 수 있습니다. 즉, 어떤 프로세스도 다른 프로세스의 자원을 강제..
Computer Science/운영체제
service, daemon 백그라운드에서 동작하는 기능을 관리하며, 부팅 시 자동으로 실행되는 프로세스 ① Windows: 서비스 ② Linux: 데몬 PCB(Process Control Block) 한정된 CPU 자원을 프로세스에게 배분하고, 프로세스의 실행 순서를 관리하는 자료 구조. (프로세스와 관련된 정보를 저장) 즉, 운영체제는 PCB를 통해 특정 프로세스를 식별하고, 해당 프로세스를 처리하는데 필요한 정보를 판단합니다. 그럼 PCB에 저장되는 정보는 무엇일까요? ① PID ② 레지스터 값: 해당 프로세스가 실행하며 사용했던 PC를 비롯한 레지스터 값들 ③ 프로세스 상태 ④ CPU 스케줄링 정보 ⑤ 메모리 관리 정보: 프로세스가 메모리에 저장된 주소 ⑥ 사용한 파일과 I/O Device 목록 ..
이중 모드와 시스템 호출 운영체제는 응용 프로그램들이 자원에 접근하려할 때 오직 자신을 통해서만 접근하도록 하여 자원을 보호합니다. 예를 들어 프로그램 실행 중에 하드 디스크에 접근하여 데이터를 저장하려면 운영체제에 도움을 요청한 후, 운영체제가 커널 영역 내의 하드 디스크에 데이터를 저장하는 코드를 실행하여 응용 프로그램의 작업을 대신 수행합니다. 이러한 운영체제의 문지기 역할을 이중 모드라고 합니다. CPU가 명령어를 실행하는 방식을 사용자 모드 or 커널 모드로 구분하는 방식입니다. ① 사용자 모드 일반적인 응용 프로그램의 실행 모드. ② 커널 모드 커널 영역의 코드를 실행할 수 있는 모드.(자원 접근 명령) 이때 운영체제 서비스를 제공 받기 위해 (사용자 모드 → 커널 모드) or (커널 모드 →..