📌 교착상태(Deadlock) → 시스템 자원에 대한 요구가 뒤엉킨 상태 → 둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 서로 기다릴 때 무한 대기에 빠지는 상황 ☑️ 데드락의 발생조건 상호 배제 한 번에 프로세스 하나만 해당 자원을 사용할 수 있음. 사용 중인 자원을 다른 프로세스가 사용하려면 요청한 자원이 해제될 때까지 기다려야 함 점유 대기 자원을 최소한 하나 보유하고, 다른 프로세스에 할당된 자원을 점유하기 위해 대기하는 프로세스가 존재해야 함 비선점 이미 할당된 자원을 강제로 빼앗을 수 없음 순환 대기 대기 프로세스의 집합이 순환 형태로 자원을 대기하고 있어야 함 ☑️ 데드락의 해결방법 📌 데드락 예방(Prevention) : 데드락의 발생조건 4가지 중 하나라도 발생하지 않게 하..
📌 다수의 프로세스가 준비 상태에 있을 때, CPU가 어느 프로세스를 먼저 처리하도록 할 것 인가를 결정하기 위한 작업 ☑️ 스케줄링의 단계 장기 스케줄링(Long-term Scheduling) 장기 스케줄링은 고수준 스케줄링, 작업 스케줄링이라고도 함 전체 시스템의 부하를 고려하여 작업을 시작할지 말지를 결정 가장 큰 틀에서 이루어지는 CPU 스케줄링으로 시스템 내의 전체 작업수를 조절 중기 스케줄링(Medium-term Scheduling) 중기 스케줄링은 중간 수준 스케줄링이라고도 불림 중기 스케줄링은 이미 활성화가 된 프로세스들에 대한 관리를 함 → 이미 활성화된 프로세스들의 중지와 활성화로 전체 시스템의 활성화된 프로세스 수를 조절하여 과부하를 막음 운영체제는 처리가 보류된 프로세스들을 처리 재..
📌 프로세스간 통신 → 프로세스들 사이에 서로 데이터를 주고받는 행위 또는 그 방법 ☑️ Process는 완전히 독립된 실행객체 → 다른 프로세스의 영향을 받지않는다는 장점 → but, 독립되어있는 만큼 별도의 설비가 없이는 서로간에 통신이 어렵다는 문제 ☑️ 커널 영역에서 IPC라는 내부 프로세스간 통신을 제공함으로써 프로세스간 통신을 할 수 있음 IPC의 종류 ☑️ PIPE(파이프) 두 개의 프로세스를 연결하여 하나의 프로세스는 데이터를 쓰기만 하고, 다른 프로세스는 데이터를 읽기만 함 부모 자식 간에 단방향 통신으로 자주 사용 한쪽 방향으로만 통신이 가능한 PIPE의 특징 때문에 Half-Duplex(반이중)통신이라고도 불림 하나의 통신선로는 읽기/쓰기 중 하나만 가능하므로 만약 읽기/쓰기(송/수신..
프로세스 관리 구동 중인 프로세스가 여러 개일 때, CPU 스케줄링을 통해 프로세스를 관리하는 것 CPU들은 각 프로세스들에 대해서 구분할 수 있어야 관리가 가능 → 각기 다른 프로세스들의 본연의 특징을 가지고 있는 Process Metadata 라는 정보를 활용 ✅ Process Metadata가 담고 있는 정보 프로세스 고유 ID (PID) : 프로세스 고유 식별 번호 프로세스 상태 : 프로세스의 현재 상태(준비, 실행, 대기상태)를 기억 프로세스 우선순위 : 스케줄링 관련 정보를 기억 Program Counter (PC) : 다음에 실행되는 명령어의 주소를 기억 CPU 레지스터 : 프로세스의 레지스터 상태를 저장하는 공간 Owner : CPU 사용시간의 정보, 각종 스케줄러에 필요한 정보 Memor..
📌 사용자 모드에서 커널 모드로 전환하기 위해 필요한 인터페이스 ✅ 운영체제는 사용자 모드(User mode)와 커널 모드(Kernel mode)로 나뉘어 동작하고, 이렇게 나뉘어 동작하는 것을 이중 동작 모드(Dual Mode Operation)라고 함 ☑️ 사용자 모드 : 접근할 수 있는 메모리 영역이 사용자에게 허용된 정도로 제한되어 있고, 하드웨어에 직접적으로 접근할 수 없음 ☑️ 커널 모드 : 모든 시스템 메모리와 CPU Instruction에 접근 가능하고, 하드웨어에 직접적으로 접근할 수 있음 ⇒ 커널 모드가 사용자 모드보다 높은 권한을 가져 사용자 모드에서 유저 애플리케이션의 필요에 따라 커널 모드로 변환하여 시스템 영역에 접근할 수 있음 ☑️ 왜 이중 동작 모드 구동 ? : 시스템을 보호..
CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치 또는 예외상황이 발생하여 처리가 필요할 경우 CPU에게 알려 처리할 수 있도록 하는 것 → CPU가 어떤 프로그램을 순차적으로 수행하는 중에 외부로부터 인터럽트 요구가 들어오면, CPU는 원래 프로그램의 수행을 중단하고 인터럽트를 먼저 처리함. 후에 인터럽트 처리가 끝나면 원래의 프로그램으로 복귀하여 수행을 계속 함. → 인터럽트를 발생시키기 위해서는 CPU 내에 있는 인터럽트 라인을 세팅함. 하드웨어 인터럽트 하드웨어가 발생시키는 인터럽트 CPU가 아닌 다른 하드웨어 장치가 CPU에 어떤 사실을 알려주거나 CPU 서비스를 요청해야할 경우 발생 소프트웨어 인터럽트 소프트웨어가 발생시키는 인터럽트 소프트웨어가 스스로 인터럽트 라인을 세팅' ..