JJM
Operating System

[운영체제 아주 쉬운 세 가지 이야기 - Virtualization] 15. Address Translation

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 CPU 가상화 부분에서, 제한적 직접 실행(LDE)라는 기법을 집중적으로 다루었다. LDE의 아이디어는 간단하다. 대부분의 경우 프로그램은 하드웨어에서 직접 실행된다. 그러나, 프로세스가 시스템 콜을 호출하거나 타이머 인터럽트가 발...

Operating System

[운영체제 아주 쉬운 세 가지 이야기 - Virtualization] 14. Memory API

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 여기서는 Unix의 메모리(사용자 주소 공간) 관리 인터페이스에 대해 논의한다. Unix/C 프로그램에서 메모리를 할당하고 관리하는 방법을 이해하는 것은 안정적인 소프트웨어를 구축하는 데 중요하다. 어떻게 메모리를 할당하고 관리해야...

Operating System

[운영체제 아주 쉬운 세 가지 이야기 - Virtualization] 13. Address Spaces

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 초기에는 사용자가 많은 것을 기대하지 않았기에 컴퓨터 시스템을 구현하는 것이 쉬웠다. 사용의 편이, 고성능, 신뢰성이라는 기대가 생겨나면서 고민할 것들이 늘어났다. 초기 시스템 메모리 관점에서 초기 컴퓨터는 많은 개념을...

devlog

Svn에 커밋이 올라온다면 디스코드 알림이 오게 해보자

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 목적 SVN을 사용하다보니 팀 환경에서 커밋이 언제 발생했는지 실시간으로 알 수 없고, 어떤 작업자가 어떤 파일을 수정했는지 확인하기도 어려웠다. 그렇다보니 변경 사항이 공유되지 않아, 작업 중 충돌이 발생하거나 중복 작업이 생기는 문...

Operating System

[운영체제 아주 쉬운 세 가지 이야기 - Virtualization] 10. Multi-CPU Scheduling

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 이 장에서는 멀티프로세서 스케줄링(multiprocessor scheduling)의 기본을 소개한다. 이 주제는 어느정도 기초를 벗어났기에 병행성(concurrency)에 대한 이해가 필요하다. 고사양 컴퓨터에만 존재했던 멀티프로...

Operating System

[운영체제 아주 쉬운 세 가지 이야기 - Virtualization] 9. Lottery Scheduling

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 이 장에서는 비례 배분(proportional share) 스케줄러 혹은, 공정 배분(fair share) 이라고도 하는 유형의 스케줄러에 대해 다루도록 하겠다. 비례 배분의 개념은 반환 시간이나 응답 시간을 최적화하는 대신 스케줄...

Operating System

[운영체제 아주 쉬운 세 가지 이야기 - Virtualization] 8. Multi-level Feedback

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 이 장에서는 멀티 레벨 피드백 큐(Multi-Level Feedback Queue, MLFQ)로 알려진 가장 유명한 스케줄링 기법에 대해 논의한다. MLFQ 스케줄러는 1962년년에 최초로 소개되었고, 최고의 영예인 Turing A...

Operating System

[운영체제 아주 쉬운 세 가지 이야기 - Virtualization] 7. CPU Scheduling

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 이제 프로세스를 싱행시키기 위한 문맥 교환 등의 저수준 기법에 대해서는 분명하게 이해할 수 있기에 운영체제 스케줄러의 고수준 정책에 관해서는 이해가 필요하다. 이제부터는 다양한 스케줄링 정책(scheduling policy)을 소개...

Operating System

[운영체제 아주 쉬운 세 가지 이야기 - Virtualization] 6. Direct Execution

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 CPU를 가상화하기 위해서 운영체제는 여러 작업들이 동시에 실행되는 것처럼 보이도록 물리적인 CPU를 공유한다. 기본적인 아이디어는 간단하다. 한 프로세스를 잠시 동안 실행하고 다른 프로세스를 또 잠깐 실행하고, 이런 식으로 계속해...