📌메모리 ❓여러 종류의 메모리가 생긴 이유 CPU의 속도는 계속 발전하는데, 메모리 속도의 발전은 느림 => 용량작고 빠른 메모리를 만들어 CPU속도에 맞추자 1. 보조기억장치 HDD, SSD 2. 주기억장치 RAM 3. 캐시 일반적으로 사용하는 그 캐시의
운영체제 분류 📌동시 사용자 수 📖single user system 한번에 한명의 사용자만 시스템 사용 자원관리 및 시스템 보호 간단 ex) windows, android 등 개인 장비 📖multi user system 동시에 여러 사용자가 시스템 사용 기능
한번에 한명의 사용자만 시스템 사용자원관리 및 시스템 보호 간단ex) windows, android 등 개인 장비동시에 여러 사용자가 시스템 사용기능, 구조 복잡 / 소유권한 관리 필요ex) unix, linux, windows server 등 서버나 클러스터 장비한번
job(program)과 process job(program) 하드에 있는 프로그램과 데이터 process 실행을 위해 커널(시스템)에 등록된 작업 커널에의해 관리 process의 정의 실행중인 프로그램 각종 자원들을 요청하고 할당받는 개체 각종 자원을 요구, 할당,
📌job(program)과 process 📖job(program) 하드에 있는 프로그램과 데이터 📖process 실행을 위해 커널(시스템)에 등록된 작업 커널에의해 관리 📌process의 정의 실행중인 프로그램 각종 자원들을 요청하고 할당받는 개체 각종 자원을
프로세스가 하는 일은 2가지로1\. 자원을 할당받기2\. 제어하기이 2가지 중 제어만을 담당하기 위해 분리한 것 = 스레드하나의 프로세스 안에 복수의 스레드가 있다또한 하나의 프로세스의 여러 스레드들은 같은 주소 공간을 공유한다.Light Weight Process(L
스케줄링 : 하나의 시스템에 여러개의 프로세스 중 자원을 할당 할 프로세스를 선택 하는 것자원관리시간분할 관리 : 하나의 자원을 여러 스레드들이 번갈아 가며 사용ex) 프로세스 스케줄링을 사용한 프로세서프로세스 스케줄링 : 프로세서 사용시간을 프로세스들에게 분배공간분할
📌스케줄링 알고리즘 📖FCFS(first-come-first-service) non-preemptive sheduling 선착순으로 처리(ready queue 기준) high resource utilization(high Tr/Tc) 즉, scheduling ove
프로세스들이 서로 동작을 맞추는 것프로세스들이 서로 정보를 공유하는 것asynchronous(비동기적) : 프로세스들이 서로 모름concurrent(병행적) : 여러개의 프로세스들이 동시에 시스템에 존재병행 수행중인 비동기적 프로세스들이 공유 자원에 동시에 접근하면 문
프로세스가 2개일때 ME의 조건을 만족하는 최초의 알고리즘마찬가지로 프로세스 2개의 ME를 보장하는 비교적 간단한 알고리즘dijkstra 알고리즘의 flag\[]값에 따른 의미 \- 값이 1일때 idle : 프로세스가 임계 지역 진입을 시도하고 있지 않음 \
Test, Set을 한번에 하는 기계어machine instruction실행 중 인터럽트 받지 않음, preemption 되지않음단, 3개이상의 프로세스에대해 bounded waiting 위배구현 쉬움busy waiting 문제초기화, P(), V() 연산으로만 접근
Sequencer정수형 변수생성시 0으로 초기화, 감소하지 않음발생 사건들의 순서 유지은행의 번호표라 생각ticket() 연산으로만 접근 가능ticket()은행에서 실제 번호표 뽑는 함수라 생각Sequencer를 반환 즉, ticket()이 호출 된 횟수를 반환하는 것
프로세스가 특정 이벤트를 기다리는 상태프로세스가 필요한 자원을 기다리는 상태프로세스가 발생 가능성이 없는 이벤트를 기다리는 경우프로세스가 deadlock 상태이다시스템내의 deadlock에 빠진 프로세스가 있는 경우시스템이 deadlock 상태이다deadlock : 불
프로세스 -> 자원은 해당 프로세스가 자원을 요청자원 -> 프로세스는 자원이 프로세스에게 할당 됨 프로세스가 2개인 예 edge는 해당 번호의 프로세스가 개입노드의 숫자 2개는 각각 현재 프로세스의 상태P1이 R1보유 R2를 요청 + P2가 R2보유 R1을 요청시 데
시스템에 상태를 계속 감시시스템이 deadlock 상태가 될 가능성이 있는 자원할당 요청을 보류시스템을 항상 safe state로 유지모든 프로세스가 정상적으로 종료될 수 있는 상태safe sequence가 존재한다면 safe statedeadlock이 발생할 수 있는
데드락을 막지 않음주기적으로 데드락 발생을 확인Resource allocation graph(RAG)데드락 검출을 위해 사용directed, bipartite graph주어진 RAG에서 edge를 하나씩 지워가는 방법completely reduced : 모든 edge가
메모리 종류 메모리 계층 구조 block : 보조기억장치와 주기억 장치 사이의 데이터 전송 단위 word : 주기억장치와 레지스터 사이의 데이터 전송 단위 address binding 프로그램의 논리 주소를 실제 메모리의 물리 주소로 매핑하는 작업 프로그램 프로
프로세스(context)를 하나의 연속된 메모리 공간에 할당프로그램, 데이터, 스택고려해야할 점메모리에 동시에 올라갈 수 있는 프로세스 수각 프로세스에게 할당 되는 메로리 공간크기메모리 분할 방법하나의 프로세스만 메로리 상에 존재programing degree = 1프
프로세스를 여러개의 block으로 분할하여 메모리에 적재실행 시, 필요한 block들만 메모리에 적재나머지 block들은 swap device(디스크)에 존재상대주소 : 프로그램의 시작주소를 0으로 가정한 주소재배치 : 메모리 할당 후, 실제 할당된 주소에 따라 상대주
프로그램을 같은 크기의 블록으로 분할(pages)page: 프로그램의 분할된 blockpage frame : 메모리의 분할된 영역, 페이지와 같은 크기논리적 분할 아님(크기에 따른 분할)page 공유 및 보호 과정이 복잡simple and efficientno exte
여러 프로세스가 특정 page 공유 가능non-continous allocation이라서 가능Protection bit 사용(어떤 프로세스가 어떤 일을 하거나 어느정도 권한이 있는지 적어두는 공간)procedure pagespure codedata page \-
hybrid paging / segmentation 프로그램 분할 논리 단위의 segment로 분할 각 segment를 고정된 크기의 page들로 분할 페이지 단위로 메모리 적재 Address mapping Virtual address : v = (s
non-continous allocation사용자 프로그램을 block으로 분할하여 적재, 실행paging 또는 segmentation system가상 메모리 시스템 성능의 최적화성능 지표 : cost modelpage fault frequency, page fault
각 프로세스에게 메모리를 얼마 만큼 줄 것인가?고정 할당 : 프로세스 실행 동안 고정된 크기 메모리 할당가변 할당 : 프로세스 실행 동안 할당하는 메로리 크기가 유동적고려 사항너무 큰 메모리 할당 -> 메모리 낭비너무 적은 메모리 할당 -> page fault rate
메모리에 프로세스 block이 진입해야 하는데 자리가 없다면 메모리에 있는 block들중 어떤 것을 교체해야할까?page fault frequency를 최소화 하는 알고리즘앞으로 가장 오랫동안 참조되지 않을 page를 교체실현 불가 기법교체 기법의 성능평가 도구로 사용
working set : 최근 일정시간 동안 참조된 page들의 집합시간에 따라 변함W(t, delta) : time interval\[t - delta, t] 동안 참조된 page들의 집합간격 delta를 window또는 windows size라고 한다locality
빠른 CPU 발전속도로 점점 커지는 경향많은 페이지수, large page table(커널의 high overhead)내부 단편화 감소I/O 시간 증가locality 향상page fault 증가적은 페이지수, small page table(커널의 low overhead
데이터 영구 저장 장치sector : 데이터 저장 물리적 단위track : platter 한 명에서 중심으로 같은 거리에 있는 sector들의 집합cylinder : 같은 반지름을 갖는 track의 집합platter : 원형 금속판surface : platter의 윗면
files : 연관된 정보들의 집합directory structure : 파일들의 정보를 구성partitions : directory들의 집합을 논리적/물리적 구분file : 보조 기억 장치에 저장된 연관된 정보들의 집합program filedata filetext f
FS내에 하나의 directory만 존재하는 것 ex) MP3 플레이어파일 naming 문제파일 보호 문제사용자 마다 하나의 directory 배정MFD (Master File Directory)UFD (User File Directory)하위 디렉토리 생성 불가, 파
파일에 대한 부적절한 접근 방지다중 사용자 시스템에서 더욱 필요readwriteexecuteappend각 파일에 passwd 부여비현실적(각 파일마다 다른 pw 기억필요, 연산 종류마다 다른 pw 필요)범위(domain)와 개체(object)사이의 접근 권한을 명시Ob
한 File을 디스크의 연속된 block에 저장효율적인 file 접근 (순차, 직접 접근)새로운 file을 위한 공간 확보가 어려움External fragmentation파일이 용량이 커지도록 변경된 경우를 고려해야해서 차지할 공간 크기 결정이 어려움File이 저장된
프로세서와 입출력장치 사이의 데이터 송수신 방법Processor가 주기적으로 I/O 장치의 상태 확인모든 I/O 장치를 순환하면서 전송 준비 및 전송 상태 등을 확인I/O 장치가 빠르고, 데이터 전송이 잦은 경우 효율적Processor의 부담이 큼I/O 장치가 작업을
disk access 요청들의 처리 순서 결정disk system의 성능을 향상 하기 위함Throughput : 단위 시간당 처리량Mean response time : 평균 응답 시간Predictability : 요청에 응답을 받을 가능성, 요청이 무기한 연기(star
여러 개의 물리 disk를 하나의 논리 disk로 사용Disk system의 성능 향상을 위해 사용메모리 성능 2가지Performance (access speed)ReliabilityDisk striping : 논리전인 한 block을 일정한 크기로 나누어 각 disk