profile
Detail makes difference.
post-thumbnail

페이지 교체 알고리즘, LRU

요구 페이징 시스템은 프로세스가 특정 페이지를 요구할 때 해당 페이지를 물리 메모리에 로딩합니다.메모리에 필요한 페이지가 있을 때는 잘 진행되지만, 없을 경우에는 문제가 생깁니다. 프로세스가 필요로 하는 페이지가 없는 경우 페이지 폴트(page fault)가 발생하고

2021년 9월 11일
·
0개의 댓글
·
post-thumbnail

가상 메모리와 페이지 폴트

RAM의 부족한 용량을 보완하기 위해, 각 프로그램에 실제 메모리 주소가 아닌 가상의 메모리 주소를 할당하는 방식입니다. 프로그램 실행에 필요한 메모리 용량 전체를 RAM에서 할당받는 것이 아니라, 최소한의 메모리를 RAM에서 할당받아 저장하고 나머지는 HDD(가상 메

2021년 8월 23일
·
0개의 댓글
·

동기 vs 비동기

요청과 결과가 한 자리에서 동시에 일어난다. 요청을 하면 처리 시간에 관계없이 요청한 자리에서 결과가 주어져야 한다. 즉, 직렬적으로 업무를 수행한다.A 노드와 B 노드 사이의 작업 처리 단위(transaction)을 동시에 맞춰야 한다.ex - 카페에서 주문을 받을

2021년 8월 23일
·
0개의 댓글
·
post-thumbnail

메모리 구조

프로그램 실행 순서위 그림과 같이, 프로그램이 실행되기 위해서는 운영체제가 프로그램의 정보를 메모리에 로드해야 합니다.또한, 프로그램이 실행되는 동안 CPU가 코드를 처리하기 위해서는, 메모리가 명령어와 데이터들을 저장해야 합니다.메모리 공간이렇게 프로그램이 운영체제(

2021년 8월 8일
·
0개의 댓글
·

세마포어 vs 뮤텍스

공유된 자원에 여러 프로세스가 동시에 접근하면서 문제가 발생할 수 있습니다.이때 공유된 자원의 데이터는 한 번에 하나의 프로세스만 접근할 수 있도록 제한을 둬야 합니다. 이를 위하여 고안된 것이 바로 Semaphore 세마포어입니다.

2021년 8월 8일
·
0개의 댓글
·
post-thumbnail

프로세스 vs 스레드

프로세스와 스레드의 정의 > 프로세스 : 운영체제로부터 자원을 할당받은 작업의 단위. 스레드 : 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위. 프로그램 -> 프로세스 -> 스레드 프로그램 -> 프로세스 > 프로그램? 파일이 저장 장치에 저장되어

2021년 8월 1일
·
0개의 댓글
·
post-thumbnail

Storage System

메인 메모리(휘발성) 밖에 있는 데이터를 저장하는 어떤 것전원이 나가도 데이터를 유지하고 있음(HDD, SSD)instruction의 직접적인 실행이 불가함.직접적으로 데이터를 read/write 불가함.용량이 메인 메모리보다 크고 싸고 느리다.지속적이다(전원이 나가도

2021년 6월 9일
·
0개의 댓글
·
post-thumbnail

I/O #2

장치 독립성일정한 이름(open, read, write, close, a와b는 서로 다른 장치일 때, a.write, b.write 등..)에러 핸들링동기 vs 비동기버퍼링여러 개 디바이스에 공유 vs 전용(dedicated) 디바이스각 I/O 디바이스를 제어하기 위해

2021년 6월 8일
·
0개의 댓글
·
post-thumbnail

I/O #1

정보를 블록 단위로(fixed-size) 저장각 블록들은 주소를 갖는다.블록 당 512B~32KB의 크기를 갖는다.각 블록에서 Read or Write를 독립적으로 수행할 수 있다.characters의 stream으로(들어오는 순서대로) 데이터를 주고 받는다.(deli

2021년 6월 7일
·
0개의 댓글
·
post-thumbnail

virtual memory #2

space overhead가 존재한다.(커널이 사용하는 메모리 공간에 메모리를 잡아야 한다.)\-> 32비트 주소 공간을 쓰고 page당 4kb를 쓴다고 하면 프로세스 당 대략 4mb의 page tables사이즈를 잡아야한다.따라서 이 오버헤드를 어떻게 줄일까?\->

2021년 6월 7일
·
0개의 댓글
·

memory management

사용자(개발자)가 HW의 디테일을 신경쓰지 않고 편리한 abstraction 제공을 위해메모리 자원은 매우 비싼 자원인데 프로세스들에게 이 자원을 어떻게 분배할 것인지를 결정하기 위해 즉, 최소의 overhead로 성능을 최대화하기 위해프로세스 간에 격리를 제공하기 위

2021년 6월 4일
·
0개의 댓글
·

스케쥴링 #2

CPU를 사용하는 시간이 가장 짧은 것을 고르는 것SJF를 사용하게 되면 (모든 작업이 동시에 들어왔다면) ready queue에서 기다리는 평균 시간이 가장 짧다는 것을 증명할 수 있다.이 job이 CPU를 얼마나 사용할지 예측할 수 없다.그래서 추측하는 방식을 사용

2021년 6월 3일
·
0개의 댓글
·
post-thumbnail

스케쥴링 #1

동작할 수 있는 프로세스들 중에 어떤 프로세스가 다음에 동작할 것인가를 결정한다.(context switch)빈번히 일어나고 빠르고 효율적으로 결정할 수 있어야 한다.이 화살표마다 스케쥴링을 결정해야 한다.1\. 모든 시스템은 no starvation(누군가는 배고프지

2021년 6월 3일
·
0개의 댓글
·
post-thumbnail

동기화 #2

다른 것들에 의해 lock이 잡혀있을 경우cs안에서 조건이 맞지 않을 경우\*\*많은 CPU를 소모한다는 단점이 있다.\*\*spinlock과 disabling interrupts(끼어들기를 못하게 하는 것)는 매우 짧고 간단한 cs에 유용하다.따라서 wasteful하

2021년 6월 3일
·
0개의 댓글
·