이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다! ✅ Context swtiching 이전 포스팅에서 동시성(Concurrency)이란 여러 가지의 Task(Process/Thread)을 빠르게 번갈아가며 처리함으로서, 마치 작업이 동시에 실행되는 것처럼 보이는 것이라는 것을 알아보았다. 이 때 하나의 Task에서 다른 Task로 전환하는 것을 Context swtiching이라고 한다. 이 Context switching에 대해서 좀 더 자세히 알아보자. 🎯 Context switching이란 무엇인가? Context switching이란 하나의 프로세스가 CPU(Processor)를 사용 중인 상태에서, 다른 프로세스가 CPU를 사용하..
Operating System
이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다! 멀티 프로세스와 멀티 스레드를 공부하다보면 동시성(Concurrency)와 병렬성(Parallelism)라는 개념을 많이 접하는데, 이 둘의 차이점에 대해 정확히 인지하지 못하고 넘어가는 경우가 있었다. 오늘은 이 두 개념에 대해 자세히 알아보자. ✅ 동시성 (Concurrency) 동시성(Concurrency)란 여러 개의 작업이 동시에 작동하는 것처럼 보이지만, 하나의 코어가 여러 작업을 빠르게 번갈아가면서 처리하는 것을 말한다. 우리가 사용하는 CPU는 동시성(Concurrency)라는 특성을 가지고 있다. 동시성이란 둘 이상의 작업이 동시에 실행되는 것을 이야기한다. 동시라는 단어로..
이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다!✅ Dual-mode operation저번 포스팅에서 Interrupt에 대해 조금 자세히 알아보았다. 오늘 알아볼 system call도 결국 Interrupt의 일종이다. 🎯 Dual-mode operation이란?System call에 대해 알아보기 전에, 우선 kernel에 대해 알아보자. OS는 기본적으로 Dual-mode operation을 지원하는데, OS는 User mode와 Kernel mode를 지원한다. Kernel mode는 system mode라고도 불리며, process가 kernel mode에서 돌아가고 있을 때, hardware 접근에 대해 제약이 없어진다. ..
이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다! 이전에 Process의 상태와 상태 전이에 대해 포스팅을 했다. 그 중 running → waiting은 Interrupt(time-out)에 의해 상태 전이가 발생하는데, Interrupt에 대해 더 자세히 알아보자. ✅ Interrupt란? 왜 사용할까? Interrupt(인터럽트)란, 마이크로프로세서(CPU)가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치에 예외사항이 발생하여 처리가 필요한 경우에, 마이크로프로세서(CPU)에게 알려 처리할 수 있도록 하는 것을 말한다. 출처: wikipedia 조금 더 풀어서 이야기해보기 위해, Core가 하나인 CPU를 예로 들어보자. ..
이 글은 공부를 하면서 알게 된 내용들을 기록하는 글입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다! ✅ Process State (프로세스 상태) 실행되고 있는 각 프로세스는 고유의 상태(state)를 가지고 있고, 프로세스가 생성되서 종료될 때까지 상태(state)가 변한다. 프로세스의 상태의 종류에는 5가지가 있으며, 운영체제는 프로세스 스케쥴링 전략을 통해 프로세스의 상태를 변경하여 관리하고 제어한다. 프로세스 상태 설명 new 프로세스를 생성하려는 단계이며, 아직 프로세스가 생성되지 않은 상태이다. 아직은 보조 메모리에 있는 프로그램으로 OS가 프로세스 생성을 위해 사용할 것이다. ready 프로세스 생성이 완료되어 메인 메모리에 적재되었으며, processor의 할당을 기다리고 ..
이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다! ✅ 프로세스 주소 공간이란? 이전 포스팅에서 프로세스에 대해 소개하면서, 우리는 프로세스에 대해 1) 실행 중인 프로그램, 2) 운영체제가 자원을 할당하는 단위 라고 이야기했다. 프로그램이 실행되면 메모리를 할당받는데, 프로세스는 이 할당받은 메모리를 관리하기 위해 특정 구조를 만든다. 이것을 프로세스 주소 공간(Process Address Space)이라고 한다. ✅ 프로세스 주소 공간 프로세스 주소 공간은 크게 네 가지의 영역으로 나눌 수 있다. 1️⃣ Text(Code) Segment 프로그램 실행에 필요한 코드들이 CPU가 해석할 수 있는 기계어로 저장되어 있는 공간을 말한다. 프로..