본 포스팅에서는 운영체제(Operating System)의 또 다른 핵심 개념인 스레드(Thread) 에 대해 정리하고자 합니다.이전 글에서 살펴본 프로세스(Process)는 실행 중인 프로그램을 의미했지만, 현대 운영체제에서는 하나의 프로세스 안에서 여러 개의 실행 흐름이 동시에 동작합니다.이 실행 흐름의 최소 단위를 우리는 “스레드(Thread)”라고 부릅니다.스레드는 프로세스 내부에서 실행되는 가벼운 실행 단위로, 같은 프로세스에 속한 스레드끼리는 메모리 공간과 자원을 공유하기 때문에 높은 성능과 빠른 전환을 가능하게 합니다.이번 글에서는 스레드의 개념과 구조, 프로세스-스레드의 차이, 스레드 생성과 스케줄링, 문맥 교환, 그리고 멀티스레딩에서 발생하는 문제와 해결 방식을 살펴보겠습니다.틀린 부분이..
CS
본 포스팅에서는 운영체제(Operating System) 에서의 핵심 개념 중 하나인 프로세스의 연산(Process Operations) 에 대해 정리하고자 합니다.프로세스는 단순히 실행 중인 프로그램이라고 흔히 정의되지만, 운영체제 관점에서는 훨씬 더 복잡한 관리 단위를 의미합니다.운영체제는 프로세스를 생성하고, 실행하며, 종료하고, 때로는 프로세스 간 통신(IPC)을 관리하는 다양한 연산을 수행합니다.이번 글에서는 프로세스의 연산 과정을 생성(Create), 실행(Schedule), 종료(Terminate), 그리고 프로세스 간 통신(Communication)으로 나누어 살펴보겠습니다.틀린 부분이나 추가 설명이 필요하다고 생각하시면 언제든지 피드백 부탁드립니다🤗 1. Process Creation ..
본 포스팅은 운영체제 교재의 “프로세스 제어 블록과 문맥 교환” 장을 공부하고, 핵심이라고 생각되는 내용들을 정리하는 것이 목적입니다. 이번 글에서는 프로세스가 실행 중일 때 운영체제는 어떻게 그 상태를 기억하고, 또 다른 프로세스로 전환할 수 있을까에 대한 내용을 중심으로 살펴보도록 하겠습니다.틀린 부분이나 추가 설명이 필요하다고 생각하시면 언제든지 피드백 부탁드립니다🤗 1. 프로세스 제어 블록(PCB)이란 무엇인가?운영체제는 동시에 수많은 프로세스를 관리한다.각 프로세스는 독립된 존재이기 때문에, 운영체제는 각 프로세스의 상태와 정보를 따로 보관해야 한다.이때 사용되는 자료 구조가 바로 프로세스 제어 블록(PCB, Process Control Block) 이다.PCB는 말 그대로 프로세스의 ‘신분증..
본 포스팅은 운영체제 교재의 “프로세스 개요” 장을 공부하고, 핵심이라고 생각되는 내용들을 정리하는 것이 목적입니다. 프로세스라는 단어는 자주 등장하지만, 정작 ‘프로그램과는 무엇이 다른가’, ‘운영체제는 왜 프로세스를 단위로 관리하는가’에 대해 깊이 생각해볼 기회는 많지 않은 것 같습니다.이번 글에서는 프로세스의 개념과 구조, 그리고 운영체제가 프로세스를 어떻게 관리하는지를 중심으로 살펴보도록 하겠습니다.틀린 부분이나 추가 설명이 필요하다고 생각하시면 언제든지 피드백 부탁드립니다🤗 1. 프로그램과 프로세스의 차이먼저 프로세스를 이해하기 위해서는 프로그램(Program) 과의 차이를 구분할 필요가 있다.프로그램은 디스크에 저장된 정적인 코드의 집합이고, 프로세스는 이 프로그램이 메모리에 적재되어 CPU..
본 포스팅은 운영체제 교재의 “멀티프로세싱” 장을 공부하고, 핵심이라고 생각되는 내용들을 정리하는 것이 목적입니다. 틀린 부분이나 추가 설명이 필요하다고 생각하시면 언제든지 피드백 부탁드립니다🤗1. 프로세스란 무엇인가?운영체제에서 프로세스는 실행 중인 프로그램을 의미한다.디스크에 저장된 프로그램이 메모리에 적재되어 실행 상태에 들어가면, OS는 해당 프로그램에 고유한 프로세스 ID(PID) 를 부여하고 독립적인 자원을 할당한다.프로세스는 크게 다음과 같은 메모리 영역을 가진다.코드 영역(Code Segment): 프로그램의 실행 명령어가 저장된 영역데이터 영역(Data Segment): 전역 변수나 정적 변수가 저장된 공간힙(Heap): 동적 메모리 할당을 위한 공간스택(Stack): 함수 호출 정보 ..
본 포스팅은 운영체제 교재의 “컴퓨터의 구조와 성능 향상” 장을 공부하고, 핵심이라고 생각되는 내용들을 정리하는 것이 목적입니다. 특히 컴퓨터의 기본 구성과 CPU·메모리에 대한 내용을 중심으로 다루고자 합니다. 한 번에 모든 내용을 다루면 글이 너무 길어질 수 있어 이 글에서는 가장 기초적인 부분을 먼저 살펴보고, 이후 포스팅에서 캐시나 병렬 처리 같은 심화 주제를 다루려 합니다. 틀린 부분이나 추가 설명이 필요하다고 생각하시면 언제든지 피드백 부탁드립니다🤗 1. 컴퓨터는 무엇으로 이루어져 있을까? 컴퓨터는 CPU와 메인메모리, 그리고 입출력 장치와 저장장치로 나눕니다. 이 중 CPU와 메모리는 컴퓨터가 동작하는 데 필수적인 두 축이며, 나머지 장치는 주변장치로 분류됩니다. 대부분의 작업이 CPU와 ..