CS6 [JSCODE 운영체제 5주차] 가상 메모리 안녕하세요 dev_writer입니다. 이번에는 가상 메모리 기법에 대해 알아보겠습니다. 연속 메모리 할당이전까지는 프로세스에게 메모리를 할당할 때, 프로세스의 크기만큼 메모리를 할당받아 여러 프로세스가 연속적으로 배치되는 방식이었습니다.연속 메모리 할당의 구현 방법연속 메모리 할당을 구현하는 방법은 크게 세 가지가 있습니다.최초 적합 (first fit)운영체제가 메모리 내의 빈 공간을 순서대로 검색하다가 적재할 수 있는 공간을 발견하면 그 공간에 프로세스를 배치하는 방식입니다.검색이 최소화되며, 빠르게 할당할 수 있습니다.최적 적합 (best fit)운영체제가 빈 공간을 모두 검색해 본 뒤, 적재 가능한 가장 작은 공간에 배치하는 방식입니다.남는 공간이 가장 작은 공간에 배치하기 때문에 가장 최적입니다.. 2024. 11. 28. [JSCODE 운영체제 4주차] 프로세스 동기화 안녕하세요 dev_writer입니다. 이번에는 프로세스 동기화에 대해 작성하고자 합니다. 동기화란동시다발적으로 실행되는 프로세스들은 공동의 목적을 위해 서로 협력하며 영향을 주고받습니다. 프로세스들은 컴퓨터 자원을 각자 이용하는데, 협력을 위해서는 이 자원에 대한 일관성도 보장받아야 할 것입니다. 동기화의 의미프로세스에서의 동기화는 프로세스들 사이의 수행 시기를 맞추는 것을 뜻합니다. 프로세스들은 동시에 수행될 때 올바른 수행을 위해 동기화되어야 합니다.컴퓨터 과학에서 동기화(synchronization)는 합의에 도달하거나 특정 작업 순서를 커밋하기 위해 특정 지점에 합류하거나 핸드셰이킹하도록 여러 프로세스를 조정하는 작업이다. - 위키백과, 동기화 (컴퓨터 과학)에서는 프로세스뿐 아니라 스레드도 동기.. 2024. 11. 21. [JSCODE 운영체제 3주차] CPU 스케줄링 안녕하세요. dev_writer입니다. 이번에는 CPU 스케줄링에 대해 알아보겠습니다. CPU 스케줄링CPU 스케줄링이란 프로세스들에게 CPU 사용 할당을 배분하는 것을 뜻합니다. CPU 스케줄링이 필요한 이유프로세스들은 실행할 때 컴퓨터 자원을 사용하는데, 이때 CPU도 사용합니다. 그런데 만약 하나의 프로세스가 오랜 시간 동안 CPU를 점유하고 있다면, 공정하지 못한 방법으로 자원을 할당하게 될 것이고 이는 시스템의 비효율을 초래할 수 있습니다. 따라서 CPU 스케줄링 기법은 운영체제에 있어 반드시 필요한 기법입니다. 프로세스들에게 CPU를 제대로 분배하지 못한다면 반드시 실행되어야 할 프로세스가 실행이 되지 않거나, 급하지 않은 프로세스들만 계속 실행되는 무질서 상태가 반복될 수도 있을 것입니다. .. 2024. 11. 14. [JSCODE 운영체제 2주차] 프로세스와 스레드 안녕하세요. dev_writer입니다. 이번에는 스터디의 2주 차 내용인, 프로세스와 스레드에 대해 정리해 보겠습니다. 프로세스먼저, 프로세스의 정의를 보겠습니다.프로세스(process)는 컴퓨터에서 연속적으로 실행되고 있는 프로그램이다. 종종 스케줄링의 대상이 되는 작업(task)이라는 용어와 거의 같은 의미로 쓰인다....프로그램은 일반적으로 하드 디스크 등에 저장되어 있는 실행코드를 뜻하고, 프로세스는 프로그램을 구동하여 프로그램 자체와 프로그램의 상태가 메모리 상에서 실행되는 작업 단위를 지칭한다. 예를 들어, 하나의 프로그램을 여러 번 구동하면 여러 개의 프로세스가 메모리 상에서 실행된다. - 위키백과 위키백과에 따르면, 프로그램과 프로세스의 구분은 실행 여부로 나눌 수 있음을 볼 수 있습니다... 2024. 11. 7. [JSCODE 운영체제 1주차] 2. 컴퓨터 구조 기본 개념 안녕하세요. dev_writer입니다. 바로 이어서 운영체제 학습에 있어 도움이 되는 컴퓨터 구조의 기본 개념에 대해 정리해 보겠습니다. 컴퓨터 구조컴퓨터의 구조는 크게 CPU / 메모리 / 보조기억장치 / 입출력장치로 나눌 수 있습니다. 1️⃣ CPU (Central Processing Unit)중앙처리장치입니다.메모리에 저장된 명령어를 읽어 들이고, 읽어 들인 명령어를 해석하고 실행합니다.ALU (Arithmetic Logic Unit)산술논리연산장치로, 계산만을 위해 존재하는 부품입니다.컴퓨터 내부에서 수행되는 대부분의 계산을 처리합니다.레지스터CPU 내부에 있는 작은 임시 저장 장치입니다.프로그램을 실행하는 데 필요한 값들을 임시로 저장합니다.CPU 안에는 여러 개의 레지스터가 존재하며, 각기 .. 2024. 11. 1. [JSCODE 운영체제 1주차] 1. 운영체제 기본 개념 안녕하세요. dev_writer입니다. 이번에 좋은 기회로 JSCODE에서 운영하는 운영체제 스터디에 참가하게 되었는데요, 스터디를 하며 과제로 배운 점을 미리 블로그에 기록하는 것이 있어 CS 글도 정리할 겸 글을 작성해보고자 합니다. 중요하지만 상대적으로 덜 준비했던 CS를 다져보는 좋은 기회라고 생각해서, 앞으로 5주 간 꾸준히 작성해 보겠습니다. 🤖 운영체제란 무엇인가?먼저, 운영체제의 정의를 위키백과에서 살펴보겠습니다. 운영체제(運營 體制, 문화어: 조작 체계) 또는 오퍼레이팅 시스템(operating system, 약칭: OS)은 사용자의 하드웨어, 시스템 리소스를 제어하고 프로그램에 대한 일반적 서비스를 지원하는 시스템 소프트웨어이다. 시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 .. 2024. 10. 31. 이전 1 다음