본문 바로가기

분류 전체보기53

[OS] CPU 가상화 메커니즘 (Limited Direct Execution) - 1부 이전 글 https://codingmon.tistory.com/37 [OS] Processes: Process, Process States, Process API Program 소스프로그램에서 컴파일에서 얻은 실행 파일을 말하고, 이것은 HDD, SDD 저장장치에 저장됩니다. 저장장치에 저장되어있던 프로그램이 실행되려면 메인 메모리로 loading되어야합니다. 어째 codingmon.tistory.com 오늘 다룰 주제는 CPU의 가상화입니다. 운영체제는 여러 프로세스들이 동시에 실행되는 것처럼 보이도록 하기 위해 물리적인 CPU를 공유하도록 지원합니다. 바로 Time Sharing(시분할) 방법을 통해서 말이죠. Time sharing이란 간단하게 말해서 일정 시간 동안 어떤 프로세스한테 CPU를 사용.. 2023. 10. 31.
객체 생성에 대한 책임 분리를 위한 Factory Pattern 도입기 https://github.com/Team-LionHeart/LionHeart-iOS GitHub - Team-LionHeart/LionHeart-iOS: 라이옹 🦁 라이옹 🦁. Contribute to Team-LionHeart/LionHeart-iOS development by creating an account on GitHub. github.com 이전글 https://codingmon.tistory.com/64 Coordinator Pattern 도입 이유와 실제 도입기 https://github.com/Team-LionHeart/LionHeart-iOS GitHub - Team-LionHeart/LionHeart-iOS: 라이옹 🦁 라이옹 🦁. Contribute to Team-LionHear.. 2023. 10. 25.
[Swift] 객체 구현시에 class와 struct 어떤게 맞을까 ?? 🤔 제가 class와 struct을 정할 때 생각하는 기준들을 나열해보고자 합니다. 어떤 객체를 만들 때 그 객체를 class로 만들지, struct으로 만들지에 대한 고민이 늘 항상 개발하면서 있었던 것 같아 그 기준을 정리해보고자 합니다. 이는 우선순위대로 나열한 것이 아닌 모든 사항이 고려된 후에 결정되어야 한다고 생각합니다. 첫번째 고려할 것 : 목적에 필요한 기능을 가지고 있는가 ? class와 struct의 차이점으로 상속의 가능 여부가 있습니다. class는 상속이 가능하지만, struct은 상속이 불가능합니다. 만약 구현할 때 필요한 것이 상속이라면 class를 사용할 수 밖에 없습니다. 예를 들어 Cocoa Touch Framework에 있는 UIKit class를 상속받을 필요가 있다면, .. 2023. 10. 24.
[OS] OS Overview (CPU가상화, 메모리 가상화, Concurrency, Persistence) Virtualizing CPU 오늘날 하나의 컴퓨터에서 돌아가는 프로그램은 매우 많습니다. 지금 당장 이 글을 쓰면서 제 노트북에는 Xcode, Chrome, Notion, Discord, 카카오톡 등등 정말 수 많은 프로그램들이 실행되고 있습니다. 하지만 이런 프로세스들을 실행시킬 CPU는 물리적으로 하나입니다. 정말 좋은 컴퓨터들이 많으면 CPU가 1,2개 더 있을 수 있지만 보통 1개입니다. 보통 물리적인 CPU는 한개지만, 멀티 코어라는 개념을 통해서 멀티스레딩의 효용을 우리는 겪고 있습니다. 그럼에도 오늘날 우리가 실행하고 있는 프로그램들에 비해 CPU의 개수가 부족한 것은 사실입니다. 이것이 "CPU의 가상화"를 하게된 계기입니다. 마치 CPU가 여러개 있어서 여러개 프로그램들이 동시에 실행되.. 2023. 10. 23.