– Deadlock 회피
– 자원이 어떤 방식으로 요청될지 추가정보를 요구하는 것.
1. 자원할당 알고리즘 기법
2. 은행권 알고리즘
– 미리 자원상황 및 사용량 파악 -> 요청오면 -> 안정이면 -> 할당
– Deadlock 회복
1. Process Terminate
– 모두 Kill 또는 Deadlock이 풀릴때까지 하나씩 Kill (하나하나 풀어내므로 Overhead 발생)
2. 자원선점
– Deadlock이 풀릴때까지 자원을 미리 획득하고 이들을 다른 Process에 준다.
– Logical Address (논리주소)
– CPU가 생성하는 메모리 주소
– Physical Address (물리주소)
– 램이 취급하는 주소
– 가상주소 -> 변환(MMU) -> 물리주소
– CPU Bound Process : CPU Burst time이 긴 Process
– I/O Bound Process : CPU Burst time이 짧은 Proess
– Convoy Effect
– 다른 프로세스(I/O Bound)들이 하나의 긴 프로세스(CPU Bound)가 CPU 점유를 넘겨주길 기다리는 것
– I/O Bound process 들이 먼저 처리되는 것보다 CPU와 I/O 이용률이 저하된다. (FCFS 스케쥴링에서 발생 가능)
– MVC (Model, View, Controller)
– Application을 세가지로 구분한 개발방법론
ex)
- User가 웹사이트에 접속 (Uses)
- Controller는 User가 요청한 웹페이지를 서비스하기 위해 Model 호출 (Manipulates)
- Model은 DB나 File등의 데이터를 제어한 후 결과를 리턴
- Controller는 Model이 리턴한 결과를 View에 반영 (Updates)
- 데이터가 반영된 View는 User에게 보여진다. (See)
– 특징 : UI와 로직을 분리하여 서로 영향없이 쉽게 유지보수가 가능함.
– JAVA vs Java Script
1) 프로그래밍언어 vs 스크립트 언어
2) 시스템 or 브라우저에서 실행되는 App 개발 vs 브라우저에서만 실행
3) 컴파일러 vs 인터프리터
– Final 변수?
– 상수로 사용될 변수, 즉 값이 바뀌지 앟는 변수 (C의 const)
– Swapping
RAM <- -> HDD (페이지 이동)
– Paging
– 어떠한 프로그램의 자주 쓰이지 않는 메모리 공간을 RAM -> HDD로 옮긺으로써 RAM의 활용공간을 상승시킴.
– Page : 옮겨가는 단위
– 가상메모리
– 한정된 RAM의 한계를 극복하고자 만들어짐.
– Disk와 같은 저장장치를 활용해 더 많은 RAM 공간을 활용하는 것.
– ex ) 용량이 큰 게임 -> HDD 를 자주 읽는 현상 (Swapping)
– Page
– 가상메모리를 활용하는 최소의 크기 단위 (보통 4kb)
– Page 교체 알고리즘
1) FIFO
2) LRU
– Thrashing (쓰레싱)
– 실행시간보다 Page 교체시간이 더 많아지는 현상
– page fault가 높을때, frame이 부족할때
– 우선순위 알고리즘으로 제한할수 있음 or 재배치 알고리즘으로 수정
– 방지법 : 각 프로세스가 필요로하는 최소한의 frame을 보장한다.
– 원인 : 멀티프로세싱의 양을 늘렸기 때문.
– 가장 좋은 해결책 : RAM 증설
– frame : 메모리는 frame이라는 고정크기의 블록으로 나뉘어져 있다.
♥