분류 전체보기(126)
-
병행 프로세스와 상호배제
병행 프로세스란? 운영체제가 프로세스를 빠르게 전환해서 프로세서 시간을 나눠서(시분할해서) 마치 프로세스 여러 개를 동시에 실행하는 것 처럼 보이게 하는 것을 말한다. 병행 프로세스는 독립 프로세스와 협력 프로세스로 구분한다. 독립 프로세스는 단일 처리 시스템에서 수행하는 방법으로, 다른 프로세스에 영향을 주고받지 않으면서(데이터를 주고받지 않으면서) 독립적으로 실행하는 것을 말한다. 협력 프로세스는 다른 프로세스에 영향을 주고받으며, 즉 상호작용하며 특정 기능을 수행하는 비동기적 프로세스이다. 당연히 서로 자원을 공유하기 때문에 충돌이 발생한다. 근데 또 이런 자원들은 프로세스에 영향을 받음 안되기 때문에 다음 세가지 형태로 상호작용한다. 1. 프로세스는 서로 인식하지 못하는 경쟁 관계를 유지한다. O..
2023.11.11 -
스레드
프로세스는 자원과 제어로 구분할 수 있다. 이 중 제어만 분리한 실행 단위를 스레드라고 한다. 한 프로세스는 하나 이상의 스레드를 가지고 있다. 스레드는 프로세스의 직접 실행 정보를 제외하고 나머지 관리 정보를 공유한다. 아래 이미지와 같이 스레스 실행 정보 블록(TCB)을 독립적으로 가지며, 프로세스의 전역데이터와 힙, 코드 등을 다른 스레드와 공유한다. 스레드는 보통 다른 프로시저를 호출하고, 다른 실행 기록을 기록하는데, 프로시저 : 업무를 실행하기 위한 절차 스레드 중 프로세스의 속성 중 일부가 들어 있는 것을 경량 프로세스, 반대로 스레드 하나에 프로세스가 하나인 경우를 중량 프로세스라고 한다. 프로세스 하나에 포함된 스레드들은 공동의 목적을 달성하려고 병렬로 수행한다. 즉, 프로세스가 하나인 ..
2023.11.11 -
프로세스 관리
프로세스는 실행 중에 새로운 프로세스를 생성할 수 있다. 이때, 프로세스 생성 순서를 저장하고 부모-자식 관계를 유지하여 계층적으로 생성한다. 자식 프로세스는 OS에서 직접 자원을 얻거나, 부모 프로세스의 자원을 일부 사용할 수 있다. 또한, 부모 프로세스는 자식 프로세스의 자원을 제한할 수 있다. OS에서 프로세서의 생성 로직은 다음과 같다. 맨 처음. 새로운 프로세스에 프로세스 식별자를 할당한다. 그 다음, 주소 공간 및 PCB 공간을 할당한다. 이후, PCB를 조기화 한 후 링크를 건 다음, 준비 큐에 삽입한다. 프로세스의 중단 & 재시작 프로세스의 준비/실행/대기 상태만 사용하면 시스템이 대부분 유휴 상태일 것이다. 입출력 동작이 일반 연산 보다 느리기 떄문이다. 이러한 문제는 프로세스 중단(일시..
2023.11.11 -
프로세스 상태 변화와 상태 정보
운영체제는 프로세스의 실행을 제어한다. 프로세스의 상태는 크게 실행 상태와 비실행 상태로 구분할 수 있다. 비실행 상태에서 실행 상태로 바꾸는 것을 디스패치, 실행 상태를 비실행 상태로 바꾸는 것을 인터럽트라고 한다. 더 세분화 하는 상태로 표현하면 다음과 같다. 프로세스의 상태 변화는 OS가 작업 스케줄러와 프로세스 스케줄러를 이용하여 관리한다. 작업 스케줄러는 스플러가 디스크에 저장한 작업 중 실행할 작업을 선정하고 준비 리스트에 삽입한다. 프로세스 스케줄러는 선정한 작업의 상태를 변화시키며 프로세스 생성에서 종료까지 과정을 수행한다. 즉, 프로세스가 스스로 하는 것은 대기뿐이고, 나머지는 외부 조건으로 발생한다. 프로세스 제어 블록(PCB) 프로세서 제어블록(PCB)은 운영 체제가 프로세스를 제어할..
2023.11.11 -
프로세스의 개념과 상태 변화
프로세스란? 단순히 말해서 실행중인 프로그램이다. 실행중인 프로그램이라는 것은 디스크에 있던 프로그램을 메모리에 적재하여 운영체제의 제어를 받는다는 의미이다. 즉, 자신만의 메모리 영역이 있음을 의미한다. 프로그램은 컴파일한 코드와 변수, 문자열, 상수 등 정적 데이터를 포함한 정적인 개체이다. 프로세스는 메모리 구조를 이루고 프로그램 카운터(이하 PC)나 레지스터처럼 현재 어떤 자원을 사용하는지 정보가 들어있는 동적인 개체이다. 프로세스의 일반적인 메모리 구조는 다음과 같다. 스택 : 데이터를 일시적으로 저장하는 영역. 지역 변수에 사용하고, 범위 밖으로 이동하면 공간을 해제한다. 힙 : 코드 영역과는 별도로 유지되는 자유 영역. 동적으로 메모리를 할당. 프로그램 실행 중 시스템 호출을 사용했다 해제하..
2023.11.11 -
운영체제의 소개
# 운영체제의 개념과 발전 목적 컴퓨터 시스템은 SW와 HW로 구성된다. 운영체제는 사용자에게 HW로 접근할 수 있는 유일한 수단이다. 따라서 운영체제는 사용자에게 응용 프로그램을 실행할 수 있는 환경을 제공한다. 컴퓨터 시스템에는 다양한 사용자 및 응용프로그램이 동시에 사용한다. 운영체제는 다양한 요소들이 컴퓨터 자원을 효울적으로 사용할 수 있도록 관리하고 조정한다. 따라서, 운영체제는 다음과 같은 역할을 한다. - 조정자 : 데이터를 조정하여 사용자에게 프로그램을 작업하는 환경 제공 - 자원 할당/관리자 : 각 응용 프로그램에 필요한 자원을 할당 - 프로그램/IO 제어자 : 입출력 장치 및 응용 프로그램을 제어 ### 운영체제의 목적 - 편리성 : 사용제에게 편리한 환경을 제공 - 효율성 : 자원을 ..
2023.11.01