JJM
Operating System

[운영체제 아주 쉬운 세 가지 이야기 - Virtualization] 19. Translation Lookaside Buffers

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 페이징은 상당한 성능 저하를 가져올 수 있다. 페이징은 프로세스 주소 공간을 작은 고정된 크기인 페이지로 나누고 각 페이지의 실제 위치인 매핑 정보를 메모리에 저장한다. 매핑 정보를 저장하는 자료 구조를 페이지 테이블이라고 하고, ...

Trouble Shooting

병합 후 언리얼 엔진 프로젝트 파일 에러. Couldn't set association for project. Check the file is writeable.

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 문제 SVN 사용 중에 작업 브랜치와 트렁크를 병합 후 프로젝트 파일을 열려고 하니까 프로젝트에 대한 연결을 설정할 수 없으니 파일이 쓰기 가능한지 확인하라는 에러가 발생하였다. 원인 .uproject 파일 병합 과정에...

Operating System

[운영체제 아주 쉬운 세 가지 이야기 - Virtualization] 18. Introduction to Paging

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 운영체제는 거의 모든 공간 관리 문제를 해결할 때 두 가지 중 하나를 사용한다. 첫 번째 방법은 세그멘테이션으로 가변 크기의 조각들로 분할하는 것이다. 세그멘테이션은 공간을 다양한 크기의 청크들로 분할할 때 공간 자체가 단편화(fr...

Operating System

[운영체제 아주 쉬운 세 가지 이야기 - Virtualization] 16. Segmentation

이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 지금까지 프로세스 주소 공간 전체를 메모리에 탑재하는 것을 가정해 왔다. 베이스와 바운드 레지스터를 사용하면 운영체제는 프로세스를 물리 메모리의 다른 부분으로 쉽게 재배치할 수 있다. 이러한 형태의 주소 공간에서는 스택과 힙 사이에...

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)에 대한 이해가 필요하다. 고사양 컴퓨터에만 존재했던 멀티프로...