728x90

CS/OS 3

[OS] 임계구역

[OS] 임계구역 1. 전역 변수로 잠금을 구현한 코드 공유 변수 lock=false 상태로 해놓고, lock=true일때 임계구역 사용하기 전역 변수로 잠금을 구현한 코드의 문제 => 동시진입 상황, 공유변수가 하나면 안돼 => 상호배제보장 안됨, 임계 구역은 프로세스 하나씩만 접근해야 한다. 2. 상호 배제 조건을 충족하는 코드 공유변수 2개로 lock 걸기. 상호 배제 조건을 충족하는 코드의 문제 => 타임아웃으로 문맥 교환이 발생한다 => 교착 상태로 무한 대기 문제가 생긴다 => p1은 p2가 끝나길, p2는 p0가 끝나길 기다린다. 3. 상호 배제와 한정 대기 조건을 충족하는 코드 프로세스 번호를 가진 공유변수 하나를 준다. But, 진행의 융통성..

CS/OS 2024.05.01

[OS] 프로세스 동기화

[OS] 프로세스 동기화 학습목표 - 프로세스 간 통신의 개념을 이해하고 종류를 파악한다. - 공유 자원 사용 시 임계구역의 문제를 알아본다. - 임계구역 문제를 해결하기 위한 조건과 해결 방법을 알아본다. 공유 메모리나 공유 파일을 이용한 통신 - 일정한 메모리 영역이나 파일을 공유하고 이를 통해 데이터를 주고받는다. - 데이터를 주고받는 방법을 프로세스끼리 알아서 결정해야 하므로 가장 원시적인 방법이다. 파이프를 이용한 통신 - 프로세스 간 통신을 위해 운영체제가 제공하는 통신 기법 - ex) fork()로 만들어진 부모-자식 간 통신에 파이프 사용 소켓을 이용한 통신 - 네트워크로 연결된 컴퓨터에서 데이터를..

CS/OS 2024.04.30

[OS] 프로세스와 스레드

[OS] 프로세스와 스레드 학습목표 - 프로세스가 생성된 후 어떤 상태 변화를 거치는지 알아보자 - 프로세스 제어 블록의 구성과 문맥 교환 시 동작 과정을 이해하자 - 프로세스의 생성과 복사, 전환 과정을 이해하자 - 스레드의 개념을 이해하고 멀티스레드 시스템의 장점을 알아보자 프로세스의 개념 프로그램이란 저장장치에 저장되어 있는 정적인 상태입니다. 프로세스란 실행을 위해 메모리에 올라온 동적인 상태, 즉 실행 중인 프로그램을 말합니다. 프로세스는 메모리에 적재되어 운영체제의 제어를 받습니다. 운영체제로부터 PCB라는 프로세스 제어 블록을 할당받는다는 것은 곧 프로세스가 존재한다는 의미입니다. 프로세스 제어 블록 PCB란 프로세스를 위해 관리하는 자료구조입니다. 프로세스 구분자란 PCB에서 각 프로세스 ..

CS/OS 2024.04.09
728x90