본문 바로가기

JSCODE7

[회고 #9] JSCODE 운영체제 스터디 KPT 회고 안녕하세요 dev_writer입니다. 이번에는 올해 11월 1일 ~ 11월 29일 5주간 진행한 JSCODE의 모의면접 (운영체제) 스터디에 대한 KPT 회고를 작성하겠습니다. 본 회고 글이 JSCODE 스터디를 신청하시려는 분들께 조금이나마 도움이 되길 바라겠습니다. JSCODE 모의면접이란JSCODE 모의면접 스터디는 CS 과목 (운영체제, 데이터베이스, 네트워크)과 자바에 대해 모의면접 식으로 진행하며 4-5주간 공부하는 스터디입니다. 현직 개발자 분들의 면접 질문을 통해 단편적인 질문보다 더 높은 질문을 받을 수도 있고, 스터디가 끝난 이후에도 공부할 수 있도록 정리된 공부 자료를 얻을 수도 있습니다. JSCODE 모의면접 신청/시작 계기저는 올해 11월에 현 회사로 이직하게 됨에 따라 취준 생활.. 2024. 12. 7.
[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.