CS 지식/운영체제5 Deadlock(데드락) Deadlock(데드락) Deadlock 이란? 프로세스가 자원을 얻지 못해 다음 처리를 하지 못하는 상태로 "교착 상태" 라고도 하며, 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생합니다. Deadlock이 발생할 수 있는 경우 출처 : https://jwprogramming.tistory.com/12 Process1 과 Process2가 리소스1, 2 둘다를 얻어야 한다고 가정. t1에 P1이 리소스 A를 얻고 P2가 리소스2를 얻습니다. t2 때 P1은 리소스2를, P2는 리소스1을 기다리지만, 서로에게 할당되어 있기 때문에 무한정 기다리게 됩니다. ※ 멀티 프로그래밍 환경에서 한정된 자원을 사용하려 서로 경쟁하는 상황에 Deadlock이 발생할 수 있습니다. Deadlock 발생 .. CS 지식/운영체제 2023. 2. 20. 동기 vs 비동기, 블로킹 vs 논블로킹 동기 & 비동기 처리해야 할 작업들을 어떠한 흐름으로 처리 할 것인가에 대한 관점 호출되는 함수의 작업 완료 여부를 신경쓰는지의 여부의 차이입니다. 동기(Synchronous) 요청과 그 결과가 동시에 일어난다는 뜻. 요청과 결과가 한 자리에서 동시에 일어납니다.(시간이 오래 걸리면 대기해야 합니다) A노드와 B노드 사이의 작업 처리 단위( transaction ) 을 동시에 맞추겠다는 뜻. 함수A가 함수B를 호출한 뒤, 함수B의 리턴 값을 계속 확인하면서 신경씁니다. 동기 방식의 예 출처 : https://dev-coco.tistory.com/46 A의 계좌에서 10,000원을 뺄 생각을 하고 있습니다. A의 계좌가 B의 계좌에 10,000원을 송금합니다. B의 계좌는 10,000원을 받았다는 걸 인지.. CS 지식/운영체제 2023. 2. 20. 프로세스(Process) vs 스레드(Thread) 프로세스 vs 스레드 프로세스란? 운영체제로부터 자원을 할당받는 작업의 단위입니다. 어플리케이션 하나가 프로세스입니다. 참조 : https://gmlwjd9405.github.io/2018/09/14/process-vs-thread.html 프로세스의 특징 프로세스는 독립된 메모리 영역을 할당받습니다. 다른 프로세스의 자원에 접근하려면 프로세스 간의 통신을 사용해야 합니다. ( ex) 파이프, 파일, 소켓 이용한 통신(IPC)) 스레드란? 할당 받은 자원을 이용하는 실행의 단위이고, 프로세스 내에 여러 개 생길 수 있습니다. 참조 : https://gmlwjd9405.github.io/2018/09/14/process-vs-thread.html 스레드의 특징 프로세스에서 Stack만 따로 할당받고, Co.. CS 지식/운영체제 2023. 2. 16. 메모리의 구조 메모리의 구조 프로그램 실행 순서 프로그램 실행 요청이 들어옵니다. ( 사용자 -> OS ) 프로그램의 정보를 읽어 메모리에 로드합니다. (OS -> 보조기억장치(HDD)) 프로그램 코드(Program Code)를 가져다 메모리를 관리하고 명령문을 실행합니다. (CPU -> 주기억장치(RAM)) 동적 메모리가 할당되면 Free Store 영역을 사용합니다. (Heap 사용) 스택 메모리가 할당되면 Free Store 영역을 사용합니다. (Stack 사용) 출처 : https://jinshine.github.io/2018/05/17/%EC%BB%B4%ED%93%A8%ED%84%B0%20%EA%B8%B0%EC%B4%88/%EB%A9%94%EB%AA%A8%EB%A6%AC%EA%B5%AC%EC%A1%B0/ 프로.. CS 지식/운영체제 2023. 2. 16. 컨텍스트 스위칭(Context Switching) 컨텍스트 스위칭 컨텍스트 스위칭이란? 출처 : https://www.crocus.co.kr/1364 위 그림은 컨텍스트 스위칭을 프로세스 P0와 프로세스 P1을 예시로 설명해줍니다. P0를 실행(execute) 하던 중 인터럽트(interrupt)나 시스템 콜(system call)이 일어나게 됩니다. 운영체제에서 P0에 대한 상태를 PCB0에 저장합니다. P1를 이용하기 위해 PCB1에서 P1에 대한 상태를 불러옵니다. 그동안 P0는 대기(idle) 상태입니다. 마찬가지로 P1을 실행하던 중 인터럽트나 시스템 콜이 일어나면 1~4 단계를 반복 해줍니다. 이렇게 프로세스나 스레드가 실행과 대기를 반복하는 것이 컨텍스트 스위칭 입니다. 이를 통해 멀티 프로세싱이나 멀티 스레딩 기능을 동작하게 합니다. 컨텍.. CS 지식/운영체제 2023. 2. 13. 이전 1 다음