반응형

크래프톤정글/운영체제 27

[운영체제] CH25 - CH27

CH25 병행성에 대한 대화 멀티 쓰레드 프로그램에서 각 쓰레드는 독립적인 객체로 프로그램 내에서 프로그램 대신 일을 한다 이 쓰레드들이 메모리에 접근하는데, 접근하는 것을 조정하지 않으면 프로그램이 예상처럼 동작하지 않을 수 있다 운영체제는 락 Lock 과 컨디션 변수 Contidional Variables  같은 기본 동작으로 멀티쓰레드 프로그램을 지원한다 🐣 빠르고 정확해야 한다 CH26 - 병행성 개요 쓰레드 Thread 멀티 쓰레드 프로그램은 하나 이상의 실행 지점 (독립적으로 실행될 수 있는 여러 개의 PC 값) 을 가지고 있다 쓰레드들은 주소 공간을 공유하기 때문에 동일한 값에 접근이 가능하다 -> 프로세스와의 다른 점  하나의 쓰레드의 상태는 프로세스와 매우 유사하고,쓰레드는 다음에 실행..

[운영체제] CH16 - CH17

CH16 세그멘테이션베이스와 바운드 레지스터를 사용하는 주소 공간에서는 스택과 힙 사이에 사용되지 않는 큰 공간이 존재한다 그 공간은 사용되지 않더라도 주소 공간을 물리 메모리에 재배치할 때 물리 메모리를 차지하기 때문에 메모리 낭비가 심하고, 주소 공간이 물리 공간이 물리 메모리보다 큰 경우 실행이 매우 어렵다는 측면에서 유연성이 없다🐣 주소 공간이 물리 메모리보다 큰 경우 왜 실행이 어려울까 찾아보니, 그러면 모든 주소를 물리 메모리에 매핑할 수 없기 때문에 실행이 어려워지고, 이는 시스템의 유연성을 떨어뜨리는 요인이 된다고 한다 + 공간을 어떻게 활용할 것인가 - 공간 관리 기법 핵심 질문 - 대형 주소 공간을 어떻게 지원하는가스택과 힙 사이에 빈 영역이 크게 존재하는 주소 공간을 어떻게 지원하는..

[OSTEP] 가상화 CH14 - CH15

CH14 막간 - 메모리 관리 API 이번 장에서는 UNIX 의 메모리 관리 인터페이스에 대해 논의한다 핵심 질문 - 어떻게 메모리를 할당하고 관리해야 하는가UNIX/ C 프로그램에서 메모리를 할당하고 관리하는 방법은 강력하고 안정적인 소프트웨어를 구축하는 데 중요하다일반적으로 어떤 인터페이스가 사용되는가? 어떤 실수를 해서는 안 되는가?  14.1 메모리 공간의 종류C 프로그램이 실행되면, 두 가지 유형의 메모리 공간이 할당된다 1) 스택 Stack - 컴파일러가 관리 컴파일러에 의해 할당과 반환이 암묵적으로 이루어지기 때문에 자동 Automatic 메모리라고 불린다 func() 라는 함수 안에서 x 라 불리는 정수를 선언할 때 아래와 같이 선언한다 void func() { int x; // 스택에 i..

[OSTEP] 가상화 CH10-CH13

CH10 멀티프로세서 스케줄링 (고급)멀티프로세서 스케줄링 Multiprocessor Scheduling 은 병행성 Concurrency 주제를 깊게 공부한 이후에 다루는 게 좋다 멀티코어를 사용하는 다중 CPU 시대가 왔지만, 전통적 응용 프로그램은 오직 하나의 CPU만 사용하기 때문에 더 많은 CPU를 추가해도 더 빨리 실행되지 않는다 이 문제를 해결하려면 응용 프로그램은 병렬 Parallel 로 실행되도록 다시 작성해야 하며, 보통 쓰레드를 이용한다 멀티 쓰레드 응용 프로그램은 작업을 여러 CPU에 할당하며, 따라서 더 많은 수의 CPU가 주어지면 더 빠르게 실행된다 핵심 질문 - 여러 CPU에 작업을 어떻게 스케줄해야 하는가 운영체제는 어떻게 작업을 여러 CPU에 스케줄해야 하는가? 어떤 새로운 ..

[OSTEP] 가상화 CH08- CH09

CH08 스케줄링 - 멀티 레벨 피드백 큐멀티 레벨 피드백 큐 Multi-level Feedback Queue, MLFQ MLFQ가 해결하려고 하는 기본적인 문제는 두 가지이다 첫째, 짧은 작업을 먼저 실행시켜 반환 시간을 최적화하고자 한다 SJF나 STCF 같은 알고리즘은 작업의 실행 시간 정보를 필요로 하지만, 운영체제는 이 실행 시간을 미리 알 수 없다 둘째, MLFQ는 대화형 사용자에게 응답이 빠른 시스템이라는 느낌을 주고 싶었기 때문에 응답 시간을 최적화한다 (대화형 사용자 - 화면 앞에 앉아 바라보면서 프로세스의 종료를 기다리는 사용자) RR은 응답 시간을 단축시키지만 반환 시간은 거의 최악이다 핵심 질문 - 정보 없이 스케줄하는 방법은 무엇인가작업의 실행 시간에 대한 선행 정보 없이 대화형 ..

[OSTEP] 가상화 CH06 - CH07

발표 날짜 2024.10.16 WED 10시a.m.CH06 제한적 직접 실행 원리 Limited Direct Execution CPU를 가상화하기 위해서 운영체제는 여러 작업들이 동시에 실행되는 것처럼 보이도록 물리적인 CPU를 공유한다 CPU 시간을 나누어 씀으로써 가상화를 구현할 수 있고, 가상화 기법을 구현하기 위해서는 몇 가지 문제를 해결해야 한다 1) 성능 저하 - 시스템에 과중한 오버 헤드를 주지 않으면서 가상화를 구현할 수 있어야 한다 2) 제어 문제 - 제어권을 상실하면 한 프로세스가 영원히 실행을 계속할 수 있는 등의 문제가 발생할 수 있다 6.1 기본 원리 - 제한적 직접 실행 Limited Direct Exectuion "직접 실행" - 프로그램을 CPU 상에서 그냥 직접 실행시키는 ..

[OSTEP] 가상화 CH01-CH04

발표 일자 2024.10.14 MON 10:00 a.m. CH01 이 책에 관한 대화앞으로 배울 주제 1) 가상화 2) 병행성 3) 영속성 + 스터디 추가) 가상화는 물리적 자원을 논리 영역에서 재분배하여 효율적으로 사용하는 개념 (물리적 한계를 넘어설 수 있다)CH02 운영체제 개요 운영체제 Operating System 은 시스템 콜을 제공하여 가상 머신과 관련된 여러 가지 작업을 진행하고, 시스템의 자원을 효율적으로 관리할 수 있게 한다 가상화 Virtualization 은 물리적인 자원을 이용해서 가상 형태의 자원을 생성하고, 많은 프로그램들이 동시에 실행될 수 있게 한다 2.1 CPU 가상화하나 또는 소규모의 CPU를 무한 개의 CPU가 존재하는 것처럼 변환하여 동시에 많은 수의 프로그램을 실행..

반응형