[운영체제] 프로세스 제어 블록과 문맥교환(Process Control Block & Context Switching)
·
CS/운영체제
프로세스 제어 블록 (PCB)개념: PCB는 운영체제가 각 프로세스의 상태 정보를 저장하고 관리하기 위해 사용하는 데이터 구조입니다. 프로세스가 생성되면 운영체제는 해당 프로세스의 PCB를 생성하고, 프로세스가 종료될 때 PCB를 삭제합니다.역할: PCB는 운영체제가 프로세스를 관리할 때, 필요한 모든 정보를 담고 있어 각 프로세스를 독립적으로 제어할 수 있게 합니다.PCB에 저장되는 주요 정보프로세스 ID (PID): 프로세스를 식별하기 위한 고유한 ID입니다.프로세스 상태: 실행 중, 대기 중, 준비 상태 등의 현재 프로세스 상태 정보입니다.CPU 레지스터 값: 프로그램 카운터(PC), 스택 포인터(SP) 등 현재 프로세스의 CPU 레지스터 상태입니다.메모리 관리 정보: 프로세스가 사용하는 메모리 주..
[운영체제] 동기화 문제(synchronization problem)
·
CS/운영체제
다중 프로세스나다중 스레드 환경에서 공유 자원에 접근할 때 발생하는 문제입니다. 동기화 문제는 여러 프로세스나 스레드가 공유 자원에 동시에 접근하려고 할 때 발생합니다.동기화 문제의 주요 원인경쟁 상태(Race Condition): 두 개 이상의 스레드가 동시에 공유 자원에 접근해 작업을 수행할 때 발생합니다. 어떤 스레드가 먼저 작업을 완료하느냐에 따라 최종 결과가 달라질 수 있습니다.원자성(Atomicity) 부족: 특정 작업이 분리된 여러 단계로 이루어져 있고, 이 작업을 중간에 다른 프로세스가 간섭할 경우 예상치 못한 결과가 발생합니다.데이터 불일치: 여러 스레드가 공유 자원에 접근하여 데이터를 변경할 때, 동기화되지 않으면 최종 결과가 일관되지 않거나 데이터 무결성이 깨질 수 있습니다.동기화 문..
[운영체제] 프로세스(Process)와 스레드(Thread) 차이 (멀티 프로세스, 멀티 스레드)
·
CS/운영체제
프로세스(Process)개념: 프로세스는 실행 중인 프로그램의 인스턴스로, 독립적인 메모리 공간(코드, 데이터, 힙, 스택)을 가지고 실행됩니다.특징:독립성: 각 프로세스는 고유의 메모리 영역을 사용하며, 다른 프로세스와 메모리를 공유하지 않기 때문에 독립적으로 실행됩니다.메모리 소비: 프로세스는 고유의 메모리를 할당받기 때문에 상대적으로 메모리 소모가 큽니다.안정성: 하나의 프로세스가 실패해도 다른 프로세스에 영향을 미치지 않으므로 안정성이 높습니다.스레드(Thread)개념: 스레드는 프로세스 내에서 실행되는 작업의 실행 단위로, 프로세스 내의 메모리 공간을 공유하면서 여러 작업을 동시에 수행합니다.특징:메모리 공유: 같은 프로세스 내 스레드는 메모리(코드, 데이터, 힙)를 공유하지만, 각 스레드는 개..
[운영체제] 컴퓨터 시스템의 구조(주기억장치, 보조기억장치)
·
CS/운영체제
1. 주기억장치 (Primary Storage)개념: 주기억장치는 CPU가 직접 접근하여 데이터를 읽고 쓸 수 있는 고속 메모리로, 현재 실행 중인 프로그램과 데이터를 저장합니다. 종류:RAM (Random Access Memory): 실행 중인 프로그램과 데이터를 저장하며, CPU가 명령어를 빠르게 처리할 수 있도록 지원합니다.ROM (Read-Only Memory): 전원을 꺼도 데이터가 유지되는 비휘발성 메모리로, 컴퓨터의 기본 부팅 프로그램(BIOS)이나 시스템 초기화 정보를 저장합니다.특징:속도: 매우 빠르지만 용량이 상대적으로 작고, 비용이 높습니다.휘발성: 전원이 끊어지면 데이터가 소멸합니다.용도: 현재 실행 중인 프로그램과 즉각적인 처리가 필요한 데이터를 저장합니다.2. 보조기억장치 (Se..
[운영체제] 운영체제란?
·
CS/운영체제
컴퓨터 시스템의 하드웨어와 소프트웨어 자원을 관리하고, 사용자가 컴퓨터를 효율적으로 사용할 수 있도록 지원하는 중앙 소프트웨어운영체제의 목적자원 관리: CPU, 메모리, 저장 장치 등 하드웨어 자원을 효율적으로 관리하여 여러 프로그램이 원활히 실행되도록 합니다.사용자 인터페이스 제공: 사용자와 컴퓨터 간의 상호작용을 쉽게 할 수 있도록 인터페이스(명령 줄 또는 GUI)를 제공합니다.프로그램 실행 환경 제공: 애플리케이션이 운영체제 위에서 실행되며, 기본적인 시스템 서비스와 자원 관리를 제공합니다.운영체제의 역할프로세스 관리: 프로세스 생성, 종료, CPU 할당 등을 관리하여 여러 프로세스가 효율적으로 실행될 수 있도록 합니다.메모리 관리: 시스템 메모리를 효율적으로 할당하고 해제하며, 각 프로세스가 필요..