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개의 댓글
·

세마포어 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개의 댓글
·
post-thumbnail

virtual memory #3

page replacement algorithmspage fault가 일어났을 때, OS가 특정한 페이지를 디스크로부터 물리적 메모리로 불러들이고(load) 물리적 메모리에서 누구를 내보내야(evict)할지 고민.내보내는데 최적인 페이지를 고른다. page fault

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

virtual memory #1

4kb(일반적으로) 단위 frame으로 쪼개서 피지컬 메모리를 쪼개서 관리한다. 프로세스도 마찬가지로 쪼개서(page라고 부른다.) 관리가 가능하다. 유저의 입장에서 연속적이고 매우 큰 주소 공간(VAS)처럼 보인다. 하지만 실제로 피지컬 주소 공간은 흩어져서 배치되도

2021년 6월 4일
·
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개의 댓글
·