[크래프톤 정글] 크래프톤 정글 7기를 끝마치며..
·
활동/크래프톤 정글
1월 23일 수료식을 마지막으로 작년 9월 4일에 시작한 정글 여정을 끝마쳤다. 약 5개월의 기간 동안에 많은 배움과 일들이 있었다. 블로그에 그동안 소홀했던 것이 너무나도 아쉽다. 다른 기억들이 더욱더 휘발되거나 희미하게 기억에 남기 전에 후기를 작성해 본다. ⭐ 크래프톤 정글을 선택한 이유고등학교와 대학교를 게임 개발을 전공했다. C#과 C++, DirectX나 OpenGL 등과 같은 게임 개발에 필요한 지식들을 배워왔다. CS와 OS도 학습을 했지만, 게임 개발과 직접적인 연관성을 느끼지 못해서 깊이 있게 공부하지 않았다. 대학교 3학년, 마지막 학년이 되었을 때 윈도우 시스템 프로그래밍을 수업으로 들었고 흥미를 붙였다. 따로 CS를 위한 스터디를 하면서 배움에 박차를 가했지만, 이후에 면접을 봤던..
[크래프톤 정글/Week 11] 키워드 정리
·
활동/크래프톤 정글
☑️ Virtual MemoryRAM의 물리적인 한계를 보완하기 위해서 하드 디스크의 일부를 메모리처럼 사용하는 운영체제의 기법 가상 메모리(Virtual Memory)는 RAM의 물리적인 한계를 보완하여 응용 프로그램에 크고 연속적인 메모리 블록을 부여하는 메모리 관리 기술을 의미한다. 물리적으로 존재하지 않으며, 논리적으로만 존재한다. 이로 인해서 컴퓨터는 응용 프로그램에게 물리 메모리의 크기보다 더 큰 가상의 메모리가 존재한다는 환상을 제공한다. 가상 메모리는 하드웨어와 소프트웨어를 사용하여 구현하는 기술로 응용 프로그램에서 사용하고 있는 가상 주소(Virtual Address)를 물리적 주소(Physical Address)에 매핑한다.응용 프로그램에서 사용하는 모든 메모리 주소는 가상 주소를 사용..
[크래프톤 정글/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가 요구하는 정보를 전달함으로써..