분류 전체보기 17

뮤텍스, 세마포어, 모니터

경쟁상태를 해결하는 대표적인 방법으로는 뮤텍스, 세마포어, 모니터 3가지가 있다.이들은 상호배제, 한정대기, 진행의 융통성의 조건을 만족시키며 경쟁상태를 해결한다.상호 배제(mutual exclusion) : 한 프로세스가 임계 영역에 들어갔을 때 다른 프로세스는 들어갈 수 없음한정 대기(bounded wating) : 특정 프로세스가 임계영역 진입을 요청한 후 해당 요청이 승인되기 전까지 다른 프로세스가 임계 영역에 진입하는 횟수를 제한하는 것을 말하며 이를 통해 특정 프로세스가 영원히 임계 영역에 들어가지 못하게 하는 것을 방지함.진행의 융통성(progress) : 만약 어떠한 프로세스도 임계영역을 사용하지 않는다면 임계영역 외부의 어떠한 프로세스도 들어갈 수 있으며 이 때 프로세스끼리 서로 방해하지..

CS/운영체제 2025.05.29

공유자원과 경쟁상태 그리고 임계영역

✅ 공유 자원 (Shared Resource)여러 스레드나 프로세스가 동시에 사용하려는 자원예: 전역 변수, 파일, 프린터, 메모리 공간 등한 번에 하나만 안전하게 사용해야 함🧠 비유: 한 식당에 포스기(POS기계)가 하나밖에 없다면,직원 여러 명이 그걸 동시에 쓰려고 하면 충돌이 날 수 있어 → 이게 공유 자원이야.✅ 경쟁 상태 (Race Condition)여러 스레드가 동시에 공유 자원에 접근해서, 실행 순서에 따라 결과가 달라지는 문제공유 자원을 제대로 통제하지 않으면 발생결과가 예측 불가, 버그 발생 가능성 ↑🧠 예시:변수 count = 0스레드 A: count++스레드 B: count++→ 동시에 실행되면 결과가 1이 될 수도 있고, 2가 될 수도 있어 → 이게 경쟁 상태야.✅ 임계 영역 (..

CS/운영체제 2025.05.29

멀티프로세싱과 멀티스레딩

✅ 멀티프로세싱 (Multiprocessing)하나의 컴퓨터 시스템에서 여러 개의 프로세스를 동시에 실행하는 방식각 프로세스는 독립된 메모리 공간과 자원을 가지고 실행됨CPU 코어가 여러 개인 환경에서 병렬 처리 가능예: 엑셀, 크롬, 카카오톡을 동시에 실행✅ 멀티스레딩 (Multithreading)하나의 프로세스 내에서 여러 스레드가 동시에 작업을 수행하는 방식모든 스레드는 메모리(Heap) 등 자원을 공유하나의 프로그램에서 동시에 여러 작업을 수행예: 게임에서 그래픽 렌더링 + 배경음악 + 사용자 입력 처리🧠 개념 요약구분멀티프로세싱 (Multiprocessing)멀티스레딩 (Multithreading)💡 정의여러 개의 프로세스를 동시에 실행하나의 프로세스 안에서 여러 스레드를 동시에 실행🧱 구..

CS/운영체제 2025.05.29

PCB와 컨텍스트 스위칭(context switching)

✅ PCB (Process Control Block, 프로세스 제어 블록)운영체제가 각 프로세스를 관리하기 위해 저장해 놓는 정보 묶음이야.하나의 프로세스는 하나의 PCB를 갖고 있어.운영체제가 이 PCB를 보고 어떤 프로세스인지 파악하고, 실행 시킬 수 있어.📌 PCB에 저장되는 주요 정보:항목설명프로세스 상태실행 중, 준비 상태, 대기 상태 등프로그램 카운터다음에 실행할 명령어 주소CPU 레지스터 값중단된 시점의 레지스터 정보메모리 정보프로세스에 할당된 메모리 위치프로세스 식별자(PID)고유한 번호스케줄링 정보우선순위, 스케줄링 큐 등 ✅ 컨텍스트 스위칭 (Context Switching)CPU가 현재 실행 중인 프로세스를 멈추고, 다른 프로세스로 전환할 때 발생하는 과정이야.이때 PCB가 아주 중..

CS/운영체제 2025.05.29

프로세스 메모리 구조

프로세스란?사람이 컴퓨터를 키고 리그 오브 레전드 라는 게임 실행파일을 실행하면 OS(운영체제)의 커널이 동작을 시작하드디스크에 저장된 프로그램을 메모리(RAM)에 적재한다 - (코드, 데이터, 스택, 힙 등 메모리 영역에 배치)OS(커널)가 해당 코드의 첫 명령어를 fetch(가져오기)를 실행하면 그 순간 프로그램이 실행되면서 프로세스로 변환한다즉 프로세스란 실행중인 프로그램이라고 생각하면 쉽다.그 후 여러 프로세스가 실행이 되면 스케줄러가 효율적으로 어떠한 프로세스를 실행할 지 우선순위를 결정하여 하나의 CPU가 컨텍스트 스위칭을 사용하여 동시성을 갖추게 할 수 있게 해준다.메모리 구조운영체제는 프로세스에 적절한 메모리를 할당하는데 다음 구조를 기반으로 할당한다.위에서부터 스택(stack), 힙(he..

CS/운영체제 2025.05.29

프로그램 컴파일 과정

컴파일이란프로그램은 컴파일러가 컴파일 과정을 거쳐 컴퓨터가 이해할 수 있는 기계어로 번역되어 실행될 수 있는 파일이 된 것을 의미한다. 소스 파일(코드) -> preprocessor(전처리과정) -> compiler -> assembler -> Linker(목적코드) -> 실행전처리소스코드의 주석제거, #include 등 헤더파일을 병합하고 매크로를 치환하는 과정컴파일러오류처리, 코드최적화 작업을 하여 어셈블리어로 변환한다.어셈블리어목적코드(object code)로 변환되는데 이때 확장자는 운영체제마다 다른게 변한다.링커프로그럄 내 있는 라이브러리 함수 등과 결합해 실행파일이 만들어집니다. 이는 .exe 확장자, .out이라는 확장자를 갖게 된다.* 요약하자면✅ 1. 전처리 (Preprocessing)대..

CS/운영체제 2025.05.29

가상메모리, 페이지테이블, 페이지폴트, 스레싱

1. ✅ 가상 메모리 (Virtual Memory)정의: 실제 물리 메모리(RAM)의 크기보다 더 큰 메모리 공간을 사용하는 것처럼 보이게 해주는 운영체제의 기술.하드디스크의 일부를 메모리처럼 사용하는 방식.프로그램은 연속된 큰 메모리 공간을 할당받는 것처럼 보임.실제로는 일부만 메모리에 올라오고 나머지는 디스크에 있음.장점: 프로그램 간 메모리 보호, 메모리 부족 문제 해결, 멀티태스킹 가능2. ✅ 페이지 테이블 (Page Table)정의: 가상 주소(Virtual Address)를 물리 주소(Physical Address)로 매핑해주는 데이터 구조.가상 메모리는 페이지(Page) 단위로 나뉘고, 물리 메모리는 프레임(Frame) 단위로 나뉨.페이지 테이블은 각 가상 페이지가 어느 물리 프레임에 매핑되..

CS/운영체제 2025.05.28

인터럽트

인터럽트인터럽트란 : 어떤 신호가 들어왔을 때 CPU를 잠깐 정지시키는 것을 말하며, 0으로 숫자를 나누는 산술 연산 오류, 프로세스 오류 등으로 발생합니다.또한 오류뿐만 아니라 키보드, 마우스 등 I/O 디바이스를 사용할 때의 인터럽트, 우선순위가 높은 프로세스의 발생 등으로 발생한다.ex) 크롬 브라우저를 띄어 놓고 파일을 다운받는 순간 인터럽트가 캐치해서 CPU가 하는일을 잠시 멈추고 파일을 받는 명령어를 실행한다.인터럽트의 종류인터럽트는 하드웨어 인터럽트, 소프트웨어 인터럽트 두 가지로 나뉜다.하드웨어 인터럽트I/O 디바이스 등 하드웨어에서 발생하는 인터럽트로써 예를 들어 마우스를 기반으로 버튼을 클릭할 때, 디스크에서 파일읽기, 쓰기 작업이 완료되었을 때 발동된다.소프트웨어 인터럽트트랩(trap..

CS/운영체제 2025.05.27

운영체제와 컴퓨터 시스템의 구조

운영체제의 종류운영체제는 앞단의 어떤 인터페이스를 두누냐에 따라 GUI와 CUI로 나눌 수 있다.GUIGUI, Graphical User Interface는 그래픽을 사용하여 컴퓨터와 상호작용하는 인터페이스라 한다.windowOS, macOS 등이 있다.CUICUI, Character User Interface는 사용자가 키보드만을 사용하여 문자를 기반으로 컴퓨터와 상호작용하는 인터페이스라 한다.예전 OS인 MS-DOS가 대표적이다.챗 GPT도 어떻게 보면 CUI라 할 수 있다.운영체제의 역할운영체제의 역할은 다음과 같습니다. 이는 운영체제의 커널이 담당합니다.CPU 스케줄링과 프로세스 상태관리메모리관리디스크 파일 관리I/0 디바이스 관리* 커널이란 : 하드웨어와 소프트웨어를 연결해주는 중간 관리자 역할..

CS/운영체제 2025.05.27

컴퓨터 구조

컴퓨터 구조에는 크게 4가지로 정의할 수 있다.1. 프로세서(CPU)CPU는 중앙처리장치(Central Processing Unit)의 약자로, 컴퓨터의 중심(뇌)이 되는 가장 중요한 하드웨어입니다. CPU는 우리가 컴퓨터로 하는 모든 작업의 중심에서 명령을 처리하고 결과를 제공합니다.CPU의 구성 요소산술 논리 장치(ALU)ALU는 Arithmetic Logic Unit, 즉 산술 논리 장치로, 숫자를 계산하거나 데이터를 비교하는 일을 해요.제어 장치(CU)CU는 CPU의 지휘관이에요.프로그램 명령어를 해석하고, 어떤 작업을 할지 ALU와 메모리에 지시합니다.CPU가 제대로 일하도록 모든 흐름을 조정하는 역할을 해요.✅ 프로그램 동작 실행 순서1. 사용자가 카카오톡 앱을 실행하면, 운영체제(OS)의 커..

CS/컴퓨터구조 2025.05.19