본문 바로가기

OS6

CS OS 세마포어와 뮤텍스 세마포어와 뮤텍스는 동기화 도구로 여러 프로세스나 스레드가 동시에 공유 자원에 접근할 때 발생할 수 있는 문제를 방지하기 위해 사용된다. 동시성 제어에서 자원 접근을 조절하는데 사용된다. ㅇ 세마포어정의세마포어는 특정 자원에 접근할 수 있는 스레드의 수를 제어하기 위한 동기화 기법이다. 정수 값으로 표현되며 이 값은 공유 자원의 사용 가능 개수를 나타낸다. 동작 원리세마포어는 주로 두 가지 연산인 P() (wait) 와 V() (signal)를 통해 동작한다.P()세마포어 값을 감소시켜 자원을 요청한다. 세마포어 값이 0 이하면 스레드는 대기상태가 된다.V()세마포어 값을 증가시켜 자원을 반환하고 대기중인 스레드가 있으면 깨운다.세마포어는 카운팅 세마포어와 이진 세마포어로 나눌 수 있다.카운팅 세마포어세.. 2024. 10. 22.
CS OS Dead Lock(교착상태) 두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해서 다음 처리를 하지 못하는 상태무한히 다음 자원을 기다리게 되는 상태를 말한다.각각 자원을 점유한 상태에서 다른 프로세스가 점유한 자원을 기다리며 무한히 대기하는 상황이다.  ㅇ 데드락 발생 조건데드락이 발생하려면 다음 네 가지의 조건을 동시에 만족해야한다. Coffman 조건이라고도 한다.상호 배제자원은 한 번에 하나의 프로세스만 사용할 수 있어야한다. 다른 프로세스가 그 자원을 사용할 수 없도록 배타적으로 점유하는 상황을 말한다.점유와 대기자원을 이미 점유한 프로세스가 다른 자원을 추가로 요청하면서 현재 점유한 자원을 놓지 않고 계속 보유한 채로 대기하는 상황이다.비선점자원을 강제로 뺏을 수 없다. 프로세스가 자원을 스스로 해제할 때까지 다른 .. 2024. 10. 22.
CS OS IPC(Inter Process Communication) IPC는 서로 다른 프로세스들이 데이터를 주고 받으며 상호작용할 수 있게 하는 메커니즘을 의미한다. 운영 체제에서 각 프로세스는 독립적인 메모리 공간을 가지므로, 프로세스 간 데이터를 직접 공유할 수 없기 때문에 IPC를 사용해 데이터를 교환하고 협력 작업을 수행한다. 메세지 전달 방식공유메모리 방식 ㅇ 필요성프로세스 간 데이터 교환여러 프로세스가 같은 데이터를 공유하고, 이를 통해 작업을 수행해야 할 때 필요하다.동기화프로세스 간의 작업 순서를 조정하고 자원 접근을 제어하기 위해 IPC가 사용된다.자원 공유파일, 메모리, 장치 같은 시스템 자원을 여러 프로세스가 효율적으로 사용할 수 있도록 한다. ㅇ IPC 기법익명 PIPE파이프는 두 개의 프로세스를 연결하는데 하나의 프로세스는 데이터를 쓰기만 하고,.. 2024. 10. 22.
CS OS PCB & Context Switching Process ManagementCPU가 프로세스가 여러개 일 때, CPU 스케줄링을 통해 관리하는 것을 말한다.이 때 CPU가 프로세스를 관리하기 위해 각 프로세스가 누군지 알아야 한다.프로세스의 특징을 갖고 있는 것이 Process Metadata이다. Process MetadataProcess ID (프로세스 아이디)Process State (프로세스 상태)Process Priority (프로세스 우선순위)CPU Registers (CPU 레지스터)Owner (소유자)CPU Usage (CPU 사용량)Memory Usage (메모리 사용량)프로세스가 생성되면 메타데이터는 PCB(Process Control Block)이라는 곳에 저장된다.  ㅇ PCB프로세스 메타데이터들을 저장하는 공간, 한 PCB.. 2024. 10. 22.
CS OS 인터럽트 인터럽트는 컴퓨터 시스템에서 현재 수행 중인 작업을 일시적으로 중단하고, 더 긴급한 작업을 처리하기 위해 제어권을 특정 코드(인터럽트 핸들러)로 넘기는 매커니즘이다. 하드웨어와 소프트웨어에서 모두 발생할 수 있으며 여러 작업을 동시에 처리하고 시스템 자원을 효율적으로 관리할 수 있도록 돕는다. ㅇ 개념정의현재 실행 중인 프로세스를 중단하고 특정 이벤트를 처리하기 위해 운영체제가 개입하도록 하는 신호다.처리 방식현재의 작업 상태를 저장한 후 운영체제는 인터럽트 핸들러라는 특수한 루틴을 실행한다. 이 루틴은 인터럽트를 처리한 후 저장된 작업 상태를 복구하여 중단된 작업을 재개한다. ㅇ 인터럽트의 종류하드웨어 인터럽트외부 장치(키보드, 마우스, 모니터 등)에 의해 발생하는 인터럽트다. 비동기적으로 발생하며 프.. 2024. 10. 22.
[OS] 프로세스 & 스레드 프로세스: 운영체제로부터 자원을 할당받은 작업의 단위스레드: 프로세스가 할당받은 자원을 이용하는 실행흐름의 단위  ㅇ 프로그램이란** 파일이 저장 장치에 저장되어 있지만, 메모리에는 올라가 있지 않은 정적인 상태실행되기 전의 파일 즉 코드 덩어리라고 할 수 있다.프로그램을 실행하는 순간 해당 파일이 컴퓨터의 메모리에 올라가게 되고, 이 상태를 동적인 상태라하며 동적인 상태의 프로그램을 프로세스라고한다.   ㅇ 프로세스와 스레드과거에는 프로그램을 실행할 때 시작부터 끝까지 프로세스 하나만을 사용해서 진행했다고한다. 시간이 흐를수록 하나의 프로세스만을 사용하기에는 벅찼고, 이를 해결하기 위해 프로세스를 여러 개  실행하면 되지 않을까? 라는 생각을 하지만,  운영체제는 안전성을 위해 프로세스마다 자신에게 할.. 2024. 10. 22.