2024/08/09 4

동기화

Race Condition (경쟁 조건)여러 프로세스나 스레드가 동시에 같은 데이터를 조작할 때 타이밍이나 접근 순서에 따라 결과가 달라질 수 있는 상황을 의미한다. 동기화 (Synchronization)여러 프로세스나 스레드가 공유 자원에 접근하는 것을 제어하여 데이터 무결성을 유지하고 경쟁 조건을 방지하는 메커니즘이다. 동기화는 뮤텍스, 세마포어, 모니터 등을 사용하여 구현된다. Critical Section (임계 영역)공유 자원에 대해 동시에 하나의 프로세스나 스레드만 접근할 수 있는 코드 영역이다. 이를 통해 데이터의 무결성을 유지하고, 여러 스레드가 동시에 자원에 접근하여 발생할 수 있는 충돌을 방지할 수 있다. Critical Section Problem (임계 영역 문제)임계 영역에 대한 ..

CS 2024.08.09

CPU Bound, I/O Bound

버스트 (Burst)특정 현상이 짧은 시간 동안 집중적으로 일어나는 것을 의미한다. CPU 버스트 (CPU Burst)프로세스가 CPU에서 연속적으로 작업을 수행하는 시간의 길이를 의미한다. 이 시간 동안 CPU는 프로세스의 연산 작업을 처리하며, CPU의 연산 집약적인 작업이 많을수록 CPU 버스트가 길어진다. IO 버스트 (IO Burst)IO 버스트는 프로세스가 I/O 작업(예: 디스크 읽기/쓰기, 네트워크 통신 등)을 요청하고 그 결과를 기다리는 시간을 의미한다. 이 동안 CPU는 다른 작업을 수행할 수 있으며, 프로세스는 I/O 작업의 완료를 기다린다. 프로세스의 실행 주기프로세스의 실행 주기는 CPU 버스트와 IO 버스트의 반복으로 이루어진다. 프로세스는 CPU에서 작업을 수행하다가 I/O 작..

CS 2024.08.09

컨텍스트 스위칭

컨텍스트 (Context)란?컨텍스트는 특정 프로세스나 스레드의 상태를 의미한다. 여기에는 CPU 레지스터, 메모리 맵, 스택 포인터, 프로그램 카운터, 그리고 기타 CPU와 관련된 정보가 포함된다. 이 정보들은 컨텍스트 스위칭이 발생할 때 저장되고, 다음에 프로세스나 스레드가 다시 실행될 때 복원된다. 컨텍스트 스위칭 (Context Switching)컨텍스트 스위칭은 CPU 코어에서 실행 중인 프로세스 또는 스레드를 다른 프로세스나 스레드로 교체하는 과정을 의미한다. 이는 멀티태스킹 운영 체제에서 여러 프로세스와 스레드를 동시에 실행할 수 있게 해주는 핵심 메커니즘이다. 각 프로세스는 기본적으로 하나의 스레드를 가지며, 스레드는 CPU/코어에서 작업을 수행하는 기본 단위다. 컨텍스트 스위칭의 필요성운..

CS 2024.08.09

프로세스와 스레드

프로그램정의: 컴퓨터가 실행할 수 있는 명령어들의 집합. 프로그램은 실행되기 전에는 코드나 파일 형태로 존재하며, 하드디스크나 SSD 같은 비휘발성 저장장치에 저장된다.종류: 프로그램은 운영체제, 응용 프로그램, 시스템 소프트웨어 등으로 나눌 수 있다. 응용 프로그램에는 워드 프로세서, 웹 브라우저, 게임 등이 포함되며, 시스템 소프트웨어는 운영체제와 드라이버 등이 포함된다.배포 및 실행: 프로그램은 실행 가능한 파일 형태로 배포되며, 사용자나 시스템의 명령에 의해 실행된다. 실행 파일은 운영체제에 의해 메모리에 로드되어 실행된다. 프로세스정의: 컴퓨터에서 실행 중인 프로그램의 인스턴스. 프로세스는 운영체제에 의해 관리되며, CPU에서 실행될 준비가 된 명령어들과 필요한 데이터들을 포함한다.메모리 공간:..

CS 2024.08.09