본문 바로가기

운영체제10

운영체제) 프로세스 동기화와 경쟁 조건 머리말공유 데이터와 데이터의 비일관성(data inconsistency)멀티 스레드 / 멀티 프로세스의 환경에서는 여러 작업을 동시에 실행시키기 때문에, 효율성을 증가시킬 수 있지만, 공유하는 자원에 대한 접근에 주의를 기울여야 한다.concurrent access to shared data may result in data inconsistency.공유 데이터에 대한 비동기적인 접근은 데이터의 비일관성을 유발할 수 있다.본문동시성과 병렬성 (Concurreny & Parallelism)1. 동시성에서의 실행(Concurrent Execution)a process may be interrupted at any point in its instruction stream.하나의 프로세스의 실행 흐름에서 어느 .. 2024. 5. 1.
프로세스 스케줄링과 문맥 교환(Process Scheduling and Context Switch) 수정일 - 2023-12-27 목차 머리말 들어가기 전에 이전에 배운 내용 이전 포스팅에서는 프로세스에 대한 전체적인 내용(메모리 구조와 상태, 정의, PCB, 스레드)에 대해 알아 보았다. 프로세스(Process) 개요 이번에 배울 내용 이번에는 프로세스의 스케줄링과 문맥 교환에 대해 자세히 알아 보자. I. 프로세스 스케줄링(Process Scheduling) 정의 어떠한 프로세스를 CPU에 할당한 것인지 결정하는 과정 멀티 프로그래밍과 시간 공유 멀티 프로그래밍(multi-programming)의 목적은 CPU의 사용(utilization)을 최대화 하기 위해, 프로세스를 항상 실행시키는 것이다. 시간 공유(time sharing)의 목적은 CPU 코어를 프로세스 사이에 전환을 자주하여, 사용자가 .. 2023. 4. 19.
시스템 호출(System Call) 수정일: 2023-12-27 목차 머리말 들어가기 전에 운영체제에 대한 전반적인 내용과 인터럽트에 대해 알아 보았으니 이번에는 시스템 호출에 대해 알아 보자. 복습 1. 운영체제의 정의와 폰 노이만 구조 복습 2. 인터럽트(Interrupt)와 실행 과정, 역할 시스템 호출(System Call) 정의 시스템 호출(system call)은 프로세스가 커널에서 제공하는 서비스나 자원을 사용하도록 요청하는 메커니즘이다. 또한 시스템 호출은 프로세스(실행 중인 프로그램)와 운영체제(정확히는 kernel) 사이의 인터페이스(API) 역할을 하며, 주로 C 언어 계열(C/C++)의 언어로 작성된다. Silbershatz, Abraham, Peter B. Galvin, and Greg Gagne. Operating.. 2023. 4. 16.
인터럽트(Interrupt)와 실행 과정, 역할 프로세스에 대한 상태(Process State)를 공부하는데 인터럽트에 대해 더 자세히 알고 싶어서 이번 블로그를 작성했다. 인터럽트가 무엇인지 알아보고 이에 대한 종류와 실행 과정, 역할에 대해 알아 보자. 📌 인터럽트의 정의 인터럽트(Interrupt)는 시스템의 내부 또는 외부에서 발생하는 예기치 못한 사건에 의해, 프로세서(흔히 CPU)가 실행 중인 프로그램의 작업을 중단시키고 다른 프로그램을 수행하도록 하는 명령어이다. 여기서 말하는 예기치 못한 사건은 입출력(Input/Output or I/O)이나 에러의 발생, 타이머의 시간 만료 등을 의미한다. 📌 인터럽트의 종류 인터럽트의 종류는 두 가지인데, 하드웨어 인터럽트와 소프트웨어 인터럽트가 있다. 말 그대로 '하드웨어에 의한 인터럽트냐, 소프트.. 2023. 4. 9.
운영체제) 프로세스(Process) 수정일: 2023-12-27 (수) 목차 머리말 들어가기 전에 이전 내용 - 운영체제의 구조 이전 포스팅에서 운영체제의 전체적인 구조에 대해서 알아 보았다면, 이제는 프로세스에 대해 배울 차례다. 운영체제의 정의와 폰 노이만 구조 포스팅 개요 프로세스의 정의와 배치, 상태에 대해 살펴 보고 프로세스 제어 블록이 무엇인지 알아 보자. 프로세스(Process) 1. 프로세스의 정의 A process is a program in execution. 프로세스는 실행 중인 프로그램을 의미한다. 프로세스는 디스크에 있던 프로그램이 메모리에 올라가 실행되는 것을 의미한다. 메모리 시간에 보다 더 자세히 배우겠지만, 메모리로 바로 올라가지는 않고, 가상 메모리에서 매핑하는 과정을 거쳐서 물리 메모리로 올라간다. 2. .. 2023. 4. 9.
[운영체제] 프로세서의 동작 과정과 명령어의 실행 명령어의 구조에 대해 살펴 보았으니 이제 프로세서가 어떻게 동작되고 명령어가 어떻게 실행되는지 알아 보자. 이전 글: [운영체제] 명령어의 구조 📌 프로세서의 동작 과정 프로세서의 동작 과정은 크게 4가지로 나눠볼 수 있다. 인출: 메모리의 데이터를 CPU의 레지스터로 가져오는 과정 해석: 인출한 명령어를 바탕으로 CPU의 레지스터를 제어 장치로 가져와 해석하는 과정 실행: 해석한 명령어를 통하여 산술/논리 장치(ALU)에서 계산하고 누산기에 일시적으로 보관하는 과정 저장: 계산되어 누산기에 보관된 데이터를 메모리에 저장하는 과정 📌 명령어의 실행 이제 명령어의 실행 과정을 알아 보자. 이미지: bournetocode.com 인출 프로그램 카운터(PC)에는 다음에 실행할 명령어의 주소가 있다. 명령어 주.. 2023. 3. 24.
[운영체제] 명령어의 구조 보호되어 있는 글 입니다. 2023. 3. 23.
[운영체제] 프로세서(CPU)의 구성과 메모리 계층 구조 저번 시간에는 추상적인 운영체제의 개념에 대해 알아 보았다면, 이번에는 보다 자세한 프로세서의 구성과 메모리 계층 구조를 알아 보자. 📌 프로세서(CPU)의 구성 (주의) 아래의 테이블에 언급하는 메모리는 레지스터(메모리 유닛)가 아닌 주 기억 장치(RAM)를 의미한다. 이름 역할 📌 제어 장치(Control Unit, CU) 레지스터와 연산 장치를 제어 📌 레지스터(Registers or Memory Unit) 주소나 명령어를 보관 프로그램 카운터(Program Counter, PC) 다음에 실행할 명령어의 주소를 보관 명령어 레지스터(Instruction Register, IR) 현재 실행 중인 명령어를 보관 메모리 주소 레지스터(Memory Address Register, MAR) 현재 실행 중인 .. 2023. 3. 20.
운영체제의 정의와 폰 노이만 구조 최신의 ooo OS를 업데이트 하세요. oo OS xx.x.을(를) 사용자의 ooo에서 사용 할 수 있으며... 일상 생활에서 스마트 기기(PC, 스마트폰 등)를 접하면 흔히 접할 수 있는 알림이다. 많이 접하는 단어면서도 설명을 하라고 하면 쉽지 않은 운영체제(OS)는 과연 무엇일까? 📌 운영체제의 정의 An operating system (OS) is system software that manages computer hardware and software resources, and provides common services for computer programs. 운영체제(operating system)는 컴퓨터의 하드웨어와 소프트웨어의 자원을 관리하고 컴퓨터 프로그램을 위한 일반적인 서비스를 제.. 2023. 3. 19.
운영체제 OT (feat. 참고 자료) 목차 머리말 운영체제 공부의 첫 걸음! 사실 첫 걸음은 아니고 저번 학기에 운영체제 강의를 들었다. 하지만 매주 나가는 진도를 제대로 따라가지 못해 너무 아쉬웠다. 그래서 나의 페이스에 맞게 교재와 강의를 통해 운영체제를 제대로 공부하여 블로그에 정리해 보기로 했다. 교재 및 강의 1. 교재 교재는 크게 영문과 한글 원서 2권을 참고했다. 1-1. Silbershatz, Abraham, Peter B. Galvin, and Greg Gagne. Operating System Concepts. 10th ed., New Jersery: Wiley, 2018. Operating System Concepts - 10th edition 운영체제 과목의 '교과서' 역할을 하고 흔히 '공룡책'이라 부르는 교재를 참고.. 2023. 3. 19.
반응형