본문 바로가기

OS10

프로세스 간 통신(IPC) 프로세스 내부 통신: 2개 이상의 스레드가 존재하는 경우를 의미, 스레드끼리 전역 변수나 파일을 이용하여 데이터를 주고받는다. 프로세스 간 데이터 통신: 같은 컴퓨터에 있는 여러 프로세스끼리 통신하는 경우로 공용 파일이나 파이프를 이용하여 데이터를 주고받는다. 네트워크를 이용한 데이터 통신: 여러 컴퓨터가 네트워크로 연결되어있을 때의 통신을 의미하며 소켓을 이용하여 데이터를 주고받는다. 분류 방식 종류 예 통신 방향에 따른 분류 양방향 통신 일반적 통신, 소켓 통신 방향에 따른 분류 반양반향 통신 무전기 통신 방향에 따른 분류 단방향 통신 전역변수, 파일, 파이프 통신 구현 방식에 따른 분류 대기가 있는 통신(동기화 통신) 파이프, 소켓 통신 구현 방식에 따른 분류 대기가 없는 통신(비동기화 통신) 전역.. 2021. 6. 4.
교착상태 필요조건과 해결방법 교착상태는 2개 이상의 프로세스가 다른 프로세스의 작업이 끝나기만 기다리며 작업을 더 이상 진행하지 못하는 상태를 말한다. 교착상태는 시스템 자원, 공유 변수, 데이터베이스와 같은 응용프로그램에서 발생할 수 있다. 자원 할당 그래프는 프로세스가 어떤 자원을 사용 중이고 어떤 자원을 기다리고 있는지를 방향성이 있는 그래프로 표현한 것이다. 💡 교착상태 필요조건 상호 배제, 비선점, 점유와 대기, 원형 대기 이 4가지 모두를 충족해야 교착상태가 발생 자원이 어떤 특징을 가지는가 ❓ 1️⃣ 상호배제: 배타적인 자원은 임계 구역으로 보호되기 때문에 다른 프로세스가 동시에 사용할 수 없다. 배타적인 자원을 사용하면 교착상태 발생 2️⃣ 비선점: 한 프로세스가 사용 중인 자원은 중간에 다른 프로세스가 빼앗을 수 없.. 2021. 6. 3.
CPU 스케줄링 💡 스케줄링 단계 레벨 1 - 고수준 스케줄링: 시스템에서 전체 프로세스의 수를 결정 레벨 2 - 중간 수준 스케줄링: 프로세스가 활성화 상태일 때 문제가 발생한 경우 이미 활성화된 프로세스의 일부를 보류 상태로 보낸다. 레벨 3 - 저수준 스케줄링: 준비 상태에 있는 프로세스를 실행 상태로 보내거나, 실행 상태를 대기 상태로 보내거나 가장 작은 단위의 스케줄링 CPU 스케줄링을 할 때 고려사항들이 무엇이 있을까 ❓ 우선순위가 높은 프로세스는 중요도가 높기에 더 자주 많이 사용된다. 커널 프로세스, 전면 프로세스, 대화형 프로세스, 입출력 프로세스는 우선순위가 높고 일반 프로세스, 후면 프로세스, 일괄처리 프로세스, CPU 집중 프로세스는 우선순위가 낮다. 입출력 프로세스가 CPU 집중 프로세스보다 먼저.. 2021. 5. 24.
스레드의 공유자원 관리(동기화) 운영체제로부터 시스템 자원을 할 장 받는 작업의 단위를 프로세스라고 한다. 시스템 자원의 예로는 무엇이 있을까 ❓ 1. CPU 시간 2. 운영되기 위해 필요한 주소 공간 3. Code, Data, Stack, Heap의 구조로 되어 있는 독립된 메모리 영역 프로세스는 각각 독립된 메모리 영역을 가지고 있는데 프로세스 내에 실행되는 여러 흐름의 단위인 스레드와 메모리 영역을 공유한다. 하나의 프로세스 안에 여러 스레드가 존재(기본적으로 하나의 스레드를 가지고 있음)할 수 있으며 같은 프로세스 내에 있는 스레드들은 각각의 Stack 영역을 가지고 있고 Code, Data, Heap 영역은 공유한다. 스택 안에는 지역변수, 리턴 주소, 값 파라미터, 리턴 값이 들어가며 이것은 각각의 스레드가 가지고 있다. 힙.. 2021. 5. 9.
프로세스 스케줄링이 뭘까❓ 컴퓨터에는 여러 개의 프로세스가 시스템 내에 존재하기에 자원을 할당할 프로세스를 선택해야 한다. 이것을 스케줄링이라 한다. 즉 프로세스 스케줄링은 프로세서 사용시간을 프로세스들에게 분배하는 것이다. 스케줄링의 목적은 시스템의 성능을 향상시키는 것이다. 시스템 성능의 지표에는 무엇이 있을까 ❓ 응답 시간 : 작업 요청으로부터 응답을 받을 때까지의 시간 작업 처리량 : 단위 시간 동안 완료된 작업의 수 자원 활용도 : 주어진 시간 동안 자원이 활용된 시간 이외에도 다양한 지표들이 있지만 지표의 종류보다 중요한것은 목적에 맞게 지표를 선택해 스케줄링 기법을 따르는 것이다. 예를 들어서 응답 시간이 중요한 시스템은 대화형 시스템에서, 작업 처리량은 일괄처리 시스템에서 자원 활용도는 비싼 장비의 시스템일 경우 중.. 2021. 1. 4.
스레드에 대해 알아보자 자원을 할당받으면 프로세스가 그 자원을 제어하는 것이 운영체제의 기본이다. 여기서 스레드란 프로세스가 제어하는 부분을 이야기하는 것으로 하나의 프로세스는 여러 개의 스레드를 가질 수 있다. 스레드란 ❓ 하나의 프로세스 안에서 다른 스레드들과 자원은 공유하면서 여러 개의 제어를 가능하게 하는 것이 스레드이다. 스레드는 Thread ID, 제어정보, 지역 데이터, 지역 데이터를 저장하는 스택이 하나의 스레드 구성요소가 되며 자원을 공유하기 때문에 Light Weight Process(LWP)라고 불린다. 스레드가 여러 개면 CPU를 병렬적으로 사용할 수 있어 프로세서 활용의 기본단위이다. 한 프로세스 내에서의 메모리 공간 같은 프로세스의 스레드들은 동일한 주소 공간을 공유하고 있어서 힙, 데이터, 코드의 자.. 2021. 1. 3.