본문 바로가기

반응형
SMALL

스레드

데드락 (Deadlock) 교착상태라고도 불리는 데드락을 알아보도록 하겠습니다. 데드락은 어느 프로세스도 일을 할 수 없는 상태를 말합니다. Process 상태 Blocked/Asleep state : 프로세스가 특정 이벤트를 기다리는 상태 Deadlock 상태 프로세스가 발생 가능성이 없는 이벤트를 기다리는 경우입니다. 그렇다면 여기서 궁금한게 생깁니다. 기아 상태도 이벤트를 기다리는 경우인데 Deadlock과 무슨 차이가 있을까요? Deadlock과 Starvation의 차이 Deadlock은 asleep 상태에서 자원이나 이벤트를 기다리는데 일어날 가능성이 없는 것을 기다리는 경우입니다. Starvation은 ready 상태에서 CPU를 기다리는데 발생할 수 있는데, 계속해서 새치기를 당하는 경우입니다. Deadlock은 자.. 더보기
프로세스 동기화 (Process Synchronization and Mutual Exclusive) 이 글은 앞서 포스팅한 공룡책 6장 프로세스 동기화에서 이해되지 못한 부분을 정리하기 위해서 작성한 글입니다. 다르거나 이상한 점이 있다면 댓글로 알려주시면 감사하겠습니다. Process Synchronization (동기화) 다중 프로그래밍 시스템 여러 개의 프로세스들이 존재합니다. 프로세스들은 서로 독립적으로 동작합니다. 즉, 동시에 동작합니다. 만약 공유 자원을 동시에 접근하려고 하면 문제가 생길 수 있습니다. 예를들어 한 종이에 두 명의 사람이 그림을 그리려고 하는데, 한 종이에 두 사람이 동시에 그림을 그리면 그림은 엉망이 됩니다. 그래서 그림을 그리기 위해 대화를 해야하는데, 이 대화하는 행위가 동기화입니다. 공유 자원 또는 데이터가 있을 때, 문제 발생 가능합니다. 동기화 (Synchroni.. 더보기
공룡책 6장 프로세스 동기화 이 글은 공룡책으로 유명한 운영체제 9판을 가지고 작성한 글입니다. 다르거나 이상한 점이 있다면 댓글로 알려주시면 감사하겠습니다. 협력적 프로세스는 시스템 내에서 실행 중인 다른 프로세스의 실행에 영향을 주거나 영향을 받는 프로세스입니다. 협력적 프로세스는 논리 주소 공간(코드와 데이터)을 직접 공유하거나, 단지 파일 또는 메시지에 의해서 데이터의 공유가 허용됩니다. 전자의 경우 4장에서 논의한 스레드를 사용해 달성할 수 있습니다. 공유 데이터에 대한 동시 접근은 데이터의 비일관성을 낳을 수 있습니다. 이 장에서는, 논리 주소 공간을 공유하는 협력적 프로세스의 질서 있는 실행을 보장하여, 이를 통해 데이터의 일관성을 유지하는 다양한 메커니즘을 논의합니다. 배경 저흰 이미 프로세스가 병행하게 또는 병렬로 .. 더보기
공룡책 4장 스레드 이 글은 공룡책으로 유명한 운영체제 9판을 가지고 작성한 글입니다. 다르거나 이상한 점이 있다면 댓글로 알려주시면 감사하겠습니다. 앞선 3장 프로세스 글은 하나의 프로세스가 하나의 스레드를 가지고 프로그램을 실행한다고 가정했습니다. 그러나 현대 운영체제에서는 한 프로세스에 다중 스레드를 포함하는 특성을 가집니다. 스레드란? 스레드는 CPU 이용의 기본 단위입니다. 스레드는 스레드 ID, 프로그램 카운터, 레지스터 집합, 그리고 스택으로 구성됩니다. 스레드는 같은 프로세스에 속한 다른 스레드와 코드, 데이터, 운영체제 자원들을 공유합니다. 프로세스는 하나의 스레드는 반드시 가집니다. 만약 다수의 스레드를 가지면 프로세스는 한 번에 하나 이상의 작업을 수행할 수 있습니다. 이 두 가지의 차이가 단일 스레드,.. 더보기

반응형
LIST