CS/운영체제
교착 상태
교착 상태 교착 상태란 두 개 이상의 프로세스가 서로 가지고 있는 자원을 무작정 기다리려 결국은 아무것도 진행되지 못하는 상태를 뜻합니다. 교착 상태를 해결 하기 위해서는 첫째, 교착 상태가 발생했을 때 상황을 정확히 알아야 하고 둘째, 교착 상태가 발생하는 근본적인 원인을 알아야 합니다. 우선 교착 상태가 발생했을 때 상황을 정확히 알기 위하여 이를 그래프로 표현하는 방법부터 알아보겠습니다. 자원 할당 그래프 자원 할당 그래프는 다음과 같이 4가지 규칙으로 그려집니다. 1. 프로세스는 원으로, 자원의 종류는 사각형으로 표현합니다. 2. 사용할 수 있는 자원의 갯수는 자원 사각형 내에 점으로 표현합니다. 3. 프로세스가 어떤 자원을 할당 받아 사용 중이라면, 자원에서 프로세스를 향해 화살표를 표시합니다...
프로세스 동기화란
동기화 프로세스는 서로 데이터를 주고받으며 협력하며 실행됩니다. 이렇게 협력적으로 실행되는 프로세스들은 일정한 순서에 맞게끔 실행되어야 합니다. 그래서 동기화가 필요합니다. 동기화란 프로세스들 사이에서 수행 시기를 맞추는 것을 의미합니다. 프로세스 간에 수행 시기를 맞추는 것은 크게 2가지를 내포하고 있습니다. 1. 실행 순서 제어 프로세스를 올바른 순서대로 실행하는 것을 의미합니다. 글을 쓰는 프로세스와 글을 읽는 프로세스가 있다고 가정해봅시다. 만약 두 프로세스를 아무 순서대로 실행하게 된다면, 글을 쓰기도 전에 글을 읽는 프로세스가 실행될 것입니다. 글을 읽는 프로세스는 글 안에 값이 존재해야만 읽을 수 있는 특정 조건이 만족되어야 실행을 이어나갈 수 있습니다. 따라서 글을 읽기전에 글을 쓰는 프로..
PCB와 Context Switching이란?
PCB(Process Control Block)란? PCB는 프로세스 제어 블록을 지칭하는 말입니다. 모든 프로세스는 실행을 위해 CPU를 필요로 합니다. 하지만 CPU자원은 한정되어 있기 때문에 모든 프로세스를 동시에 실행할 수는 없습니다. 그렇기 때문에 돌아가면서 프로세스들을 실행해야 되는데, 이 때 각 프로세스들의 실행순서와 자원 배분을 위해 운영체제는 PCB를 사용하게 됩니다. 메모리는 커널 영역과 사용자 영역으로 나뉘어 지는데, PCB는 커널 영역에 생성됩니다. PCB는 프로세스 생성 시에 만들어지고 실행이 끝나면 폐기됩니다. PCB에는 아래와 같은 정보가 담기게 됩니다. 프로세스 ID (PID) 레지스터 값 프로세스 상태 CPU 스케줄링 정보 메모리 관리 정보 사용한 파일과 입출력 장치 PCB..
프로세스와 스레드에 대하여
운영체제란? 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 시스템 소프트웨어입니다. 이러한 운영체제는 CPU, 입출력 장치, 프로세스 등 컴퓨터 시스템 자원을 관리하여 컴퓨터 시스템이 제대로 작동하도록 해줍니다. 프로세스란? 컴퓨터에서 실행되는 프로그램을 프로세스라고 합니다. 프로그램은 명령어 리스트를 가진 파일이고, 이것이 보조기억장치에서 주 기억장치인 RAM에 실릴 때 프로세스로 작동되게 됩니다. 프로세스는 보통 하나 이상의 스레드로 구성되어 있습니다. 프로세스는 각각 독립된 메모리 영역을 할당받습니다. 메모리 영역은 크게 4가지로 구분될 수 있는데 종류는 다음과 같습니다. 1. 코드 영역 2. 데이터 영역 3. 힙 영역 4. 스택 영역 각각의 프로세스는 독립된 메모리 영역들..