CS(3)
-
[CS] 교착상태와 기아상태
🔵 교착상태 (DeadLock) 면접 질문 : 교착상태와 교착상태 해결방법에 대해서 설명해주세요. 교착상태 발생조건에 무엇이 있는지 얘기해주세요. 더보기 1. 두 개 이상의 프로세스가 자원을 점유한 상태(멀티 프로그래밍 환경)에서 서로 원하는 자원을 얻기 위해 무한정한 기다림 상태에 빠지는 것입니다. 이에 대한 해결방법은 예방, 회피, 탐지 및 회복이 있습니다. 2. 상호배제 , 점유와 대기 , 비선점 , 순환대기가 있으며 4가지 조건 모두 성립해야 교착상태가 발생 할 수 있습니다. 🔷 교착상태란 ? 두 개 이상의 프로세스가 서로의 작업이 끝나기만을 기다리고 있어 둘 다 영원히 끝나지 않는 상황 = 데드락(DeadLock) 이라고도 함 🔷 교착상태 발생조건 아래 4가지 조건이 모두 만족되는 경우 데드락이..
2023.06.11 -
[CS] 세마포어와 뮤텍스
여러 개의 프로세스가 동시에 실행할 수 있는 멀티 코어 시스템은 시스템의 성능 향상을 가져왔지만 동시에 "프로세스 간의 공유 자원 접근 관리"라는 문제를 가져왔습니다. 즉, 공유된 자원에 여러 프로세스 혹은 쓰레드가 동시에 접근하면서 문제가 발생하는데 이렇게 다수의 컴포넌트가 공유 중인 자원을 동시에 읽거나 수정할 때 생기는 문제를 "동기화 문제"라고 하며 이러한 문제는 스핀락, 뮤텍스, 세마포어를 통해서 해결할 수 있습니다. 동기화(Synchronization) 여러 프로세스나 쓰레드가 공유하는 자원의 일관성을 유지하는 것 여러 프로스세나 쓰레드가 동시에 하나의 자원에 접근할 때 접근 순서를 정해 일관성을 유지해준다. 임계 영역(Critical Section) 여러 프로세스가 데이터를 공유하며 수행될 ..
2023.06.07 -
[CS] 운영체제 , 프로세스&스레드
운영체제란 ? 컴퓨터 하드웨어와 응용 프로그램 간의 인터페이스를 제공하고 시스템 자원을 관리하는 역할을 합니다. 운영체제를 알기 위해서는 shell과 kernel의 이해가 필수적입니다. OS = shell(사용자 인터페이스) + kernel(하드웨어 관리) 쉘과 커널은 운영체제의 중요한 구성 요소이며, 사용자와 시스템 간의 상호작용과 시스템 자원의 효율적인 관리를 가능하게 합니다. 사용자는 쉘을 통해 명령어를 입력하여 원하는 작업을 수행하고, 쉘은 이를 해석하여 커널에 요청하고 결과를 반환받습니다. 커널은 이러한 요청을 처리하고 하드웨어와 상호작용하여 시스템의 기능을 제공하며, 운영체제의 안정성과 성능을 유지합니다. 1. 쉘(Shell): 사용자와 운영체제 간의 인터페이스 역할 사용자가 명령어를 입력하고..
2023.05.28