[운영체제] 교착 상태(데드락, DeadLock)
·
CS/운영체제
0. 서론데드락은 두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해서 다음 처리를 하지 못하는 상태를 의미한다.이로 인해, 무한히 다음 자원을 기다리게 되는 상태를 말한다.시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생한다.프로세스 1과 2가 자원 1, 2를 모두 얻어야 하는 경우t1: 프로세스 1이 자원 1을 얻음 / 프로세스 2가 자원 2를 얻음t2: 프로레스 1은 자원2를 기다림 / 프로레스 2는 자원 1을 기다림현재 서로 원하는 자원이 상대방에 할당되어 있어서 두 프로세스는 무한정 wait 상태에 빠지게 되는 이 상황을 DeadLock이라고 부른다.멀티 프로그래밍 환경에서 한정된 자원을 얻기 위해 서로 경쟁하는 상황 발생한 프로세스가 자원을 요청했을 때, 동시에 그 자원을 사..
[운영체제] 멀티 프로세스 & 멀티 쓰레드
·
CS/운영체제
0. 서론멀티 프로세스와 멀티 스레드는 한 어플리케이션에 대한 처리방식 이라고 보면 된다. 단순히 프로그램을 여러개 띄워놓는 것이 멀티 프로세스가 아니라 이 둘은 언제 어느때에 어떤 방식으로 처리하느냐에 따라 다른 것으로 이해해야 한다.이름으로 유추할 수 있듯이 멀티 프로세스와 멀티 스레드는 여러개의 프로세스, 스레드가 동작하는 것을 일 컫는다. 단일이 아닌 다중으로 돌아감으로써 성능 향상 등 여러가지 효과를 얻을 수 있다. 하지만 또한 이로 인해 발생되는 부가적인 문제점도 발생하게 된다. 지금 부터 이에 대해 자세히 알아보자1. 멀티 프로세스 (Multi Process)멀티 프로세스는 운영체제에서 하나의 응용 프로그램에 대해 동시에 여러 개의 프로세스를 실행할 수 있게 하는 기술을 말한다. 보통 하나의..
[운영체제] 프로세스 & 스레드 (Process & Thread)
·
CS/운영체제
0. 서론프로세스와 스레드가 무엇인지 알아보자. 이 둘을 한마디로 정의하면 다음과 같다.프로세스 (Process)운영체제로부터 자원을 할당받은 작업의 단위스레드 (Thred)프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위아직은 이게 무슨 차이인지 이해가 어려울 수도 있지만 모든 글을 읽고 나면 이해가 될 것이다.1. 프로그램과 프로세스1-1. 정적 프로그램 (Static Program)윈도우의 "exe" 파일이나 Mac의 "dmg" 파일과 같은 컴퓨터에서 실행할 수 있는 파일을 정적 프로그램(Static Program) 줄여서 프로그램이라고 부른다.즉, 프로그램은 코드 덩어리이다.1-2. 프로세스 (Process)프로그램이 돌아가고 있는 상태 즉, 컴퓨터에서 작업 중인 프로그램을 의미한다.모든 프로..