반응형

2024/11 36

[OSTEP] CH21 물리 메모리 크기의 극복 - 메커니즘

발표 일자 2024.11.12 TUE 10시a.m. CH21 물리 메모리 크기의 극복 - 메커니즘 다수 프로세스들이 동시에 각자 큰 주소 공간을 사용하고 있다고 가정할 때 메모리 계층에 레이어의 추가가 필요하다 큰 주소 공간을 지원하기 위해서 주소 공간 중에 현재는 크게 필요하지 않은 일부를 보통은 하드 디스크 드라이브에 보관한다 메모리 계층에서 크고 느린 하드 디스크 드라이브가 가장 하부에 위치하고, 그 위에 메모리가 있다 핵심 질문 - 물리 메모리 이상으로 나아가기 위해서 어떻게 할까 운영체제는 어떻게 크고 느린 장치를 사용하면서 마치 커다란 가상 주소 공간이 있는 것처럼 할 수 있을까? 과거에 사용되던 메모리 오버레이 Memory Overlay 라는 시스템은 프로그래머가 코드 or 데이터의 일부를 ..

[정글] PintOS Project1 #3 Priority Scheduling 2/2

[정글] PintOS Project1 #2 Priority Scheduling 1/2 은 여기에 정리 Priority Inversion Priority Inversion 은 H (High), M (Middle), L (Low) 라는 세 개의 쓰레드가 있고, 각각의 우선순위는 H > M > L 일 때 H 가 L 을 기다리고 있는 상황 (L이 Lock을 점유하고 있는 상황에서 H가 Lock을 요청한 상황) 에서 H 가 L 에게 CPU 점유권을 넘겨주면, M 이 L 보다 우선순위가 높으므로 점유권을 선점하여 실행되기 때문에 Thread 가 마무리되는 순서가 M -> L -> H 가 되어 M 이 H 보다 우선하여 실행되는 현상이다 이런 문제를 해결하기 위해 Priority Donation 을 구현해야 한다, 아..

[정글] PintOS Project1 #2 Priority Scheduling 1/2

Project 1 에서 구현해야 할 것 1. Alarm Clock 구현 완료 2. Priority Scheduling 3. Advanced Scheduler 2. Priority SchedulingScheduling 은 Ready 상태에 있는 Thread 들의 순서를 관리하여 가장 높은 Priority 를 가진 Thread 가 Running 상태가 될 수 있도록 만들어 주는 것이다 🐣 운영체제 CH07 - CPU Scheduling 은 한 프로세스가 CPU 를 사용하는 동안 다른 프로세스가 대기하는 상황에서CPU 를 효율적으로 활용할 수 있도록 우선순위를 정하고, 프로세스들을 적절하게 배치하는 기술이다 Scheduling 현재 방식 Running 상태로 될 수 있는 상태는 Ready 밖에 없으므로, R..

[OSTEP] CH20 페이징 - 더 작은 테이블

발표 일자 2024.11.11 MON 2시p.m. CH20 페이징 - 더 작은 테이블 페이징의 두 번째 문제점은 페이지 테이블의 크기이다 (첫 번째 문제점은 성능 저하) 페이지 테이블이 크면 많은 메모리 공간을 차지하고, 각 프로세스는 자기 자신의 페이지 테이블을 갖는다 핵심 질문 - 페이지 테이블을 어떻게 더 작게 만들까단순한 배열 기반의 페이지 테이블은 (흔히 선형 페이지 테이블이라고 불림) 크기가 크며 일반적인 시스템에서 메모리를 과도하게 차지한다, 어떻게 페이지 테이블의 크기를 줄일 수 있을까? 새로운 자료 구조들은 어떤 비효율성을 갖는가? 20.1 간단한 해법 - 더 큰 페이지 페이지 테이블의 크기를 줄일 수 있는 간단한 방법은 페이지 크기를 증가시키는 것이다 🐣 페이지 테이블은 가상 주소를 ..

[JAVA] 배열 Array

Chapter08 배열 Array 수강 중인 인터넷 강의 배열은 같은 타입의 변수를 사용하기 편하게 하나로 묶어둔 것 배열을 사용하는 이유는 같은 타입의 변수를 반복해서 선언하고, 반복해서 사용하는 문제를 해결할 수 있다  배열 생성 및 초기화int[] students; //1. 배열 변수 선언 students = new int[5]; //2. 배열 생성배열을 사용하려면 int[] students; 와 같이 배열 변수를 선언한다new int[5] 라고 입력하면 5개의 int 형 변수가 만들어진다new 는 새로 생성한다는 뜻이고, int[5] 는 int 형 변수가 5개라는 뜻이다  int[] students;students = new int[]{90, 80, 70, 60, 50}; //배열 생성과 초기화..

TIL/JAVA 2024.11.08

[정글] PintOS Project1 #1 Alarm Clock

PintOS 는 스탠포드에서 만들어진 교육용 mini OS 이다 우리는 카이스트 전산학과 운영체제 수업의 카이스트 PintOS Project 를 진행한다 Kaist PintOS Project GitHub  GitHub - casys-kaist/pintos-kaistContribute to casys-kaist/pintos-kaist development by creating an account on GitHub.github.com1) 키워드 정리 구현을 시작하기 전에 먼저 키워드를 정리하면서 OS 에 대한 감을 잡았다 [정글] Week08 키워드 정리 하지만 아직도 내가 뭘 구현해야할지는 모르겠다  [정글] Week08 키워드 정리Week08 PintOS 키워드 정리 개념, 사용 이유, 코드를 이용한 예..

[OSTEP] 가상화 CH19 페이징 - 더 빠른 변환 TLB

CH19 페이징 - 더 빠른 변환 TLB 페이징은 주소 공간을 작은 크기로 나누고 각 페이지의 실제 위치 (매핑 정보)를 메모리 내의 페이지 테이블에 저장한다 이 페이지 테이블을 저장하고 관리하기 위해 상당한 메모리 공간이 필요하고,주소 변환을 위해 매번 메모리에서 페이지 테이블을 참조해야 하기 때문에, 페이징은 성능 저하를 유발할 수 있다 핵심 질문 - 주소 변환 속도를 어떻게 향상할까주소 변환을 어떻게 빨리할 수 있을까? 페이징에서 발생하는 추가 메모리 참조를 어떻게 피할 수 있을까? 어떤 하드웨어가 필요할까? 운영체제가 어떤 식으로 개입해야 할까? 운영체제의 실행 속도를 개선하기 위해서 대부분의 경우 하드웨어로부터 도움을 받는다 변환-색인 버퍼 Translation-Lookaside Buffer, ..

[OSTEP] 가상화 CH18 페이징 - 개요

CH18 페이징 - 개요운영체제가 공간 관리 문제를 해결할 때 두 가지 중 하나를 사용한다 1) 가변 크기의 조각들로 분할 공간을 다양한 크기의 청크로 분할할 때 공간 자체가 단편화 Fragmented 될 수 있고, 할당은 점점 어려워진다( + 가상 메모리의 세그멘테이션 Segmentation 의 문제를 해결하기 위해 페이징이 나왔다 )2) 동일 크기의 조각으로 분할하는 것 - 페이징 Paging  가상 메모리를 페이지 Page 라는 고정 크기 단위로 나누어서,물리 메모리도 페이지 프레임 Page Frame 이라고 불리는 고정 크기의 슬롯의 배열이라고 생각한다 페이지 프레임 각각은 하나의 가상 메모리 페이지를 저장할 수 있다핵심 질문 - 페이지를 사용하여 어떻게 메모리를 가상화할 수 있을까세그멘테이션의 ..

반응형