본문 바로가기

CS4

컨텍스트 스위칭이란? 컨텍스트 스위칭이란 무엇인가요? Context : 특정 프로세스를 실행시키기 위한 해당 프로세스의 정보들. Context는 프로세스의 PCB(Process Control Block)에 저장된다. 그래서 Context Switching을 할 때, PCB의 Context 정보를 읽어와서, 이전에 하다가 중단되었던 부분부터 이어서 수행 가능한 것이다. PCB에 저장되어있는 정보 프로세스의 상태 (생성, 준비, 수행, 대기, 중지) 프로세스 카운터 (프로세스가 다음에 실행할 명령어의 주소) 레지스터 (누산기, 스택, 색인 레지스터) 프로세스의 번호 ★ Context Switching을 할 때, CPU는 아무 일을 하지 못한다. Context switching 시에 딜레이가 존재한다. 따라서 Context Swi.. 2020. 11. 19.
뮤텍스와 세마포어란? 뮤텍스와 세마포어가 무엇인가요? 공유된 자원에 여러 프로세스, 스레드가 동시에 접근하면서 문제가 발생할 수 있다. 이를 안전하게 관리하기 위한 기법이 뮤텍스와 세마포어이다. 뮤텍스 : 칸이 하나밖에 없는 화장실. 한 번에 한 프로세스나, 스레드만 접근 가능. 다음 스레드들은 순서대로 대기. 세마포어 : 여러 개의 칸이 있는 화장실. 현재 화장실의 빈칸을 보여주는 전광판이 존재. 프로세스나 스레드는 빈칸이 있다면 접근 가능. 빈 칸이 없다면, 생길 때까지 순서대로 대기. Critical section : 여러 프로세스가 데이터를 공유하면서 실행될 때, 각 프로세스에서 공유 데이터를 액세스 하는 프로그램 코드 부분. 참조 : jwprogramming.tistory.com/13 Semaphore란? 세마포어와.. 2020. 11. 17.
교착상태란? 교착상태란 무엇이며, 교착상태가 발생하기 위해서는 어떤 조건이 있어야 하나요? 또, 교착상태의 해결법은 무엇인가요? 교착 : 어떤 상태가 굳어 조금도 진전이 없이 머물고 있다. 교착 상태(deadlock : 데드락) : 둘 이상의 프로세스들이 이미 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상. 교착 상태의 발생 조건 상호 배제 : 프로세스들이 자원을 독점하고 싶어 한다. 점유 대기 : 프로세스가 이미 할당된 자원을 가졌음에도 불구하고, 추가적인 다른 자원을 더 갖기 위해 기다린다. 비선점 : 다른 프로세스가 이미 쓰고 있는 자원은 뺏을 수 없다. 순환(환형) 대기 : 각 프로세스는 순환적으로 다음 프로세스가 써야 하는 자원을 현재 쓰고 있다. 이 4가지.. 2020. 11. 16.
프로세스와 스레드의 차이 프로그램 : 명령어들(프로그래밍 언어로 작성된 코드들)의 집합 프로세스: 컴퓨터에서 실행되고 있는 프로그램. 스레드 : 프로세스(실행되고 있는 프로그램) 내에서 실행되고 있는 여러 흐름들의 단위. 2020. 11. 16.