OS
-
교착상태(Deadlock) 란?OS 2020. 10. 29. 18:32
프로세스 / 스레드란?에서 교착상태에 대한 설명이 잠깐 나온다. 그렇다면 교착상태를 해결하기 위한 방법은 무엇일까? 교착상태의 정의를 다시 알아보고 해결 방법을 알아보자. 교착상태(Deadlock) 란? 교착상태는 스레드끼리 한정된 자원을 공유하기 때문에 발생하는 현상으로 두 개 이상의 작업이 하나씩 자원을 소지(hold)하고 있으면서 상대방이 가진 자원을 서로 원하고(need) 있는 상태입니다. 그래서 어떤 작업도 실행되지 못하고 상대방의 작업이 끝나기 만을 기다리는 무한정 대기상태를 의미합니다. 교착상태(Deadlock) 발생 조건 교착 상태는 한 시스템 내에서 다음의 네 가지 조건이 동시에 성립할 때 발생합니다. 따라서, 네 가지 조건 중 하나라도 성립하지 않도록 만든다면 교착 상태를 해결할 수 있..
-
프로세스의 상태OS 2020. 10. 26. 17:11
프로세스 / 스레드란?를 통해 프로세스와 스레드에 대해 알아보았다. 프로세스는 실행 흐름에 따라 상태가 변하는데 이 상태에 대해 알아보도록 하자. 프로세스의 상태 프로세스는 실행의 흐름에 따라 상태가 변합니다. 상태를 정의하는 이름은 운영체제에 따라 다르지만, 대부분 서로 비슷한 개념으로 구성되어 있습니다. 프로세스의 흐름은 일반적으로 5개의 상태로 정의됩니다. 생성 (New) : 프로세스 생성 상태 준비 (Ready) : 프로세스가 초기화와 같은 작업을 통해 CPU에 할당되기를 기다리는 상태 실행 (Running) : 프로세스가 CPU에 할당되어 실행 중인 상태 대기 (Waiting) : 보류(Block)라고도 하며, 프로세스가 입출력이나 이벤트를 기다리는 상태 (해당 작업이 끝나면 다시 CPU에 실행..
-
프로세스 / 스레드란?OS 2020. 10. 21. 21:30
자바 교육을 들을 때, 스레드를 배웠는데 당시에는 아무것도 모르는 상태로 들었던 거라 "스레드가 뭐지..? 프로세스는 또 뭐야.." 라는 생각과 함께 의미없이 코드만 따라 쳤었다. 조금 많이 늦은거 같지만 지금에서야 면접 대비 겸 프로세스와 스레드를 정리해본다. 프로그램 프로그램은 사용자가 원하는 일을 처리할 수 있도록 프로그래밍 언어를 사용하여 올바른 수행절차를 표현해 놓은 명령어들의 집합입니다. 프로세스 그렇다면 프로세스는 무엇일까요? 프로세스는 운영체제(OS)가 메모리 등의 필요한 자원을 할당해준 실행 중인 프로그램입니다. 프로그램을 실행하면 운영체제로 부터 실행에 필요한 자원을 할당받아 프로세스가 되는 것입니다. 프로세스는 각각 Code, Data, Stack, Heap과 같은 독립된 메모리 영역..