본문 바로가기

복습하자

(15)
가상메모리 가상 메모리는 메모리가 실제 메모리보다 많아 보이게 하는 기술로, 어떤 프로세스가 실행될 때 메모리에 해당 프로세스 전체가 올라가지 않더라도 실행이 가능하다는 점에 착안하여 고안되었음. 원래는 전체 올렸는데 -> 메모리에 최소한으로 필요한 것만 올려놈( 다올렸다는 환상) 필요한 이유 메모리 용량 부족 이슈와 프로세스 메모리 영역간 침범이슈가 있어서 그것을 해결하기 위해 가상메모리 기술 결국 가상 메모리를 메모리가 실제 메모리보다 많아 보이는 것이며 실제 사용되는 메모리는 적다는 점에 착안 프로세스 간 공간 분리로 프로세스 이슈가 전체 시스템에 영향을 주지 않을 수 있다.
운영체제 8장 가상메모리로 분할하여 메모리를 할당하고 주소변환 페이지: 모든 프로그램을 같은 크기로 나눴을 때 한조각 세그먼트: 프로그램을 다른 크기로 나눴을 때 한조각 가상주소: 참조하는 주소 실주소: 실제 메모리상의 주소
메모리 적합 방법 내부단편화: 분할 내의 낭비공간 외부단편화: 분할 크기 작아서 못들어감 최초적합(firstfit) -free의 첫 노드부터 제일 먼저 발견되는 요구되는 크기보다 더 큰 빈 공간에 할당 최적적합(bestfit) -free리스트를 끝까지 탐색하여 요구되는 크기보다 더 크고 차이가 가장 작은 공간에 할당 최악적합(worstfit) -free리스트를 끝까지 탐색하여 차이가 가장 큰 공간에 할당 다음적합(nextfit) -free리스트를 순환구조로 만들고, 한당이 가능한 노드가 선택 될 때마다 헤더 포인터를 이 노드 다음으로 옮기게하는 방법
운영체제 6장 교착상태: 자원이 한정적인 상황에서 두개이상의 프로세스가 먼저 확도한 자원을 가진 채 상대방의 자원을 필요로할 경우 외부로부터 조치가 없는 한 아무일도 못하고 계속 기다리는것 -교착상태, 무한대기 => 내부적으로는 비슷하나 교착상태는 외부적인 조치 필요, 무한대기는 조치없이도 가능 교착상태의 원인 1) 자원의 배타적인 사용(자원공유불가) 2) 자원의 부분할당(확보한 자원들을 소유한 채 대기상태) 3) 자원의 선점 불가능 성 4) 자원에 대한 환형대기
운영체제 5장 병행 : 같이 공존(메모리) 하고 있다(동시) 병렬 : 같이 실행 되고있다. 상호배제: 한번에 하나의 프로세스만 임계영역에 들어가게 하는것 뮤텍스: 락을 걸어놓는데 한개뿐인거 세마포어: 여러개 ->프로세스간의 동기화 모니터: 모니터는 하나이하의 프로세스만 들어갈 수 있다 ->스레드간의 동기화
운영체제 2장 #2.2 #2.3 각 자원들의 현 상황을 파악할 수 있는 방법 -폴링: cpu가 시간을 두고 주기적으로 확인하는 방식=>자신의 상태를 적어 놓을 수 있는 곳에 저장시키고 cpu는 폴링 때 그것을 읽어보는 방식(수동적), 시간때까지 못알림, 아무일 없어도 시간들임 -인터럽트: 각 자원들이 능동적으로 자신의 변화를 cpu에게 알리는 방식=> 따로 시간 들이지 않아도 됨 하드웨어 인터럽트-장치, 주변 장치로 부터 소프트웨어 인터럽트-cpu스스로(실행중인 명령어) 트랩이라고도 함 -문맥교환: 현재까지 하던 일에서 잠시 다를일을 해야할 때 작업대(cpu)가 같은 곳이여야한다면 현재 모양 그대로 어딘가에 보관해 뒀다가 나중에 보관되 있는거 가져오는것(인터럽트때) #2.4 속도빠를수록 가격↑, 용량 클수록 가격↓,속..
운영체제 1장 #1.1 운영체제: 컴퓨터를 정상적으로 작동시켜 필요한 프로그램을 설치하고 실행 될 수 있도록 해주는 가장 기본적인 프로그램 시스템 프로그램: 하드웨어에 의존적이며 그 시스템을 정상적으로 작동시키기 위해 필요한 프로그램 시스템 소프트웨어: 운영체제 + 시스템 프로그램 집단 (ex 윈도우) 응용 소프트웨어: 응용프로그램 집단 (ex 게임 프로그램) 사용자 ↑↓ 응용프로그램 ↑↓ 운영체제 ↑↓ 하드웨어 -> 컴퓨터 시스템의 구성요소 #1.2 1세대 운영체제=일괄처리시스템 Single-Stream Batch Processing System 일괄처리: 다수의 프로그램을 읽어 저장해 놓되, 한 번에 한 개씩의 프로그램을 실행시켜주는 방식=>한번에 하는 것 보다 시간 단축 Batch: 작업이 차례대로 한 개씩 처리..
http method GET 서버에서 resource를 보내도록 요청하는데 사용 (서버의 resource를 읽음) HEAD GET과 동일하지만 서버에 body를 리턴하지 않음 -resource를 받지 않고 오직 찾기만 바랄 때 -object가 존재할 경우 응답의 상태코드를 확인 할 떄 -서버의 응답헤더를 봄으로서 resource가 수정되었는지 확인 PUT 서버에 문서를 쓸 때 사용 (GET과는 반대) -put메서드는 서버가 client요청의 body를 확인한다 -요청된 url에 정의된 새로운 resource를 생성하기 위함 -요청된 url에 존재할 경우 대체하여 사용 POST 서버에 input data를 보내기 위함(html form에 많이 사용) -put은 서버의 리소스 데이터를 저장하기 위한 용도 -post는 서버에 da..