[크래프톤 정글/Week 09] 키워드 정리
·
활동/크래프톤 정글
☑️ 유저 모드 vs 커널 모드(User Mode vs Kernel Mode)운영체제에서 하드웨어의 주요 권한을 응용 프로그램으로부터 보호하기 위해 사용되는 기법  ⭐  커널이란?  영문 사전에서 커널(Kernel)은 '핵심'을 의미한다.컴퓨터 과학 용어들은 단어의 뜻 그대로를 가리키는 경우가 많다.커널도 운영체제에서 핵심을 의미한다.커널의 주요 기능은 다음과 같다.메모리의 할당 및 해제를 관리한다.프로세스 생성 및 소멸을 관리하며 어떤 프로세스가 CPU에 할당될지 결정한다.하드웨어 장치를 제어하고 입출력 작업을 처리한다.응용 프로그램에서 요구하는 요청을 처리한다. ⭐  유저 모드 vs  커널 모드  커널은 위와 같이 컴퓨터 하드웨어의 핵심적인 역할을 담당한다.이러한 커널이 응용 프로그램에서 다뤄지게 된..
[크래프톤 정글/Week 08/PintOS] Priority Scheduling ( 높은 우선순위 먼저 실행하기 )
·
활동/크래프톤 정글
🖐️Priority Scheduling ( 높은 우선순위 먼저 실행하기 ) 1️⃣ 우선순위 정렬 함수 만들기// thread.cbool compare_priority(const struct list_elem* a, const struct list_elem* b, void* check UNUSED){ struct thread *thread_a = list_entry(a, struct thread, elem); struct thread *thread_b = list_entry(b, struct thread, elem); return thread_a->priority > thread_b->priority;}// thread.hbool compare_priority(const struct list_elem*,..
[크래프톤 정글/Week 08/PintOS] Priority Scheduling ( 정리 )
·
활동/크래프톤 정글
🖐️Priority Scheduling ( 정리 )PintOS에서 우선순위 스케쥴링 방식을 구현해 보자! Alarm Clock을 구현하면서 PintOS가 어렵지 않다고 생각했는데 이번 과제를 구현하면서 생각이 많이 달라졌다. Local 환경도 아니고 Docker에서 PintOS를 구현하기 때문에 디버깅이 쉽지 않은 것은 물론이고 이슈 찾기가 무척 어렵다. 무엇보다 과제의 난이도가 올라갔다.. 그래서 우선순위 스케쥴링(Priority Scheduling)은 구현 방법을 소개하기 앞서 과제에 대한 정리를 하고 들어가고자 한다. ☑️ 과제의 최종 목표FIFO 방식의 스케쥴링을 우선순위 스케쥴링으로 변경하기!" 이번 과제는 달성하기 위해서 Alarm Clock에 비해서 복잡한 구현을 진행해야 한다. 조금 더 ..
[크래프톤 정글/Week 08] 키워드 정리
·
활동/크래프톤 정글
☑️ Process실행 중인 프로그램의 OS에서의 관점을 프로세스라고 한다. OS에서 프로그램을 실행하면 HDD에서 RAM으로 로드된다. 그리고 OS에서 정해둔 일련의 과정을 따라서 프로그램을 실행하게 되는데, 이때 메모리에 담긴 프로그램의 정보 집합을 프로세스라고 한다. ⭐ 왜 프로세스라는 개념이 있을까?  프로세스는 현대의 컴퓨터에서 중요한 개념이다. 컴퓨터는 추상화 기법을 사용해서 대부분의 동작을 처리한다. 만약에 추상화 기법이 존재하지 않는다면, 여러 개의 프로그램을 개발하고 컴퓨터에서 실행하려고 할 때 프로그램 실행을 위해서 각각에 알맞은 방법들을 지정을 해주어야 한다. 추상화 개념을 적용하게 된다면 OS 입장에서는 필요한 정보를 미리 정해둠으로써, 프로그램은 OS가 요구하는 정보를 전달함으로써..
[크래프톤 정글/Week 08/PintOS] Alarm Clock ( Busy-Waiting을 Sleep/Wakeup으로 바꿔보자 )
·
활동/크래프톤 정글
🖐️Alarm Clock ( Busy-Waiting을 Sleep/Wakeup으로 바꿔보자 )지금 PintOS에서 구현된 Alarm Clcok을 Busy-Waiting에서 Sleep/Wakeup으로 변경하라. 아무 생각이 없다가 이번 주차를 맞이하고서 크래프톤 정글의 마지막이 가까워지는 게 느껴진다. 드디어 대망의 PintOS가 시작됐다. 모든 자료들이 영문으로 되어있어서 접근이 어려운 부분이 있지만, 제공되는 Gitbook을 본다면 어렵지 않게 해야 할 일들을 생각할 수 있다. 이번 게시글만 과제에 접근한 순서대로 작성해보려고 한다. ☑️ STEP 0. 키워드 정리아직 블로그에 올리지는 않았지만, 해당 주차를 시작하고 과제의 갈피를 잡지 못해서 우선적으로 키워드를 정리하는 시간을 가졌다. 정글에서 제공..
[크래프톤 정글/Week 07] 키워드 정리
·
활동/크래프톤 정글
☑️ 네트워크 계층(OSI 7 Layer, TCP/IP Layer)⭐ OSI 7 Layer  OSI 7 Layer를 이해하기 위해서는 OSI 모델을 알아야 한다. OSI 모델은 네트워크 통신을 위해서 7개의 계층으로 표현된 이론을 의미한다. 하드웨어나 응용 프로그램에 직접 구현된 것이 아니라, 해당 이론을 기반으로 프레임워크를 만들게 된다. 그렇기 때문에 OSI 모델은 OSI 참조 모델(OSI Reference Model)이라고 부르기도 한다. OSI 7 Layer가 무엇을 의미하는지 알게 되었으니까, 각 계층이 가지는 역할을 보자. 계층마다 역할을 수행하기 위한 방법이 많지만 자세한 내용은 피하고 어떤 역할을 가지는지만 간단하게 보자. 1) 물리(Physical) 계층OSI 모델 최하위에 존재하는 계층..