CS 필기 노트(39)
-
자료구조 - 스택(Stack)과 큐(Queue)
스택 삽입, 삭제가 한쪽 끝에서 이루어지는 데이터 구조로 가장 먼저 들어간 데이터가 제일 마지막에 나온다. 함수 호출시 복귀 번지를 저장하거나 인터럽트 분기시 복귀 주소를 저장하는데 주로 사용하며, push연산과 pop연산으로 데이터를 삽입/삭제 한다. 큐 한쪽 방향으로 입력, 다른 한쪽 방향에서는 출력만 하는 구조이다. 먼저 입력된 자료가 제일 먼저 나오는 선입선출 구조이며 스케줄링, 일괄 처리 등에 사용된다.
2020.10.07 -
파일 접근 방식과 디스크 스케줄링
파일 접근 방식 순차 접근 방식 입력되는 순서에 따라 물리적으로 기록하는 파일 접근 방식이다. 장점은 파일 구성에 용이하고 접근속도가 빠르다. 하지만 새로운 파일의 삽입/삭제할 경우 시간이 많이 소요된다. 직접 접근 방식 파일을 구성하는 레코드를 임의의 물리적 저장 공간에 기록하는 방식이다. 데이터 내 키 필드를 해싱 사상 함수에 의해 주소로 변환하여 데이터를 검색한다. 접근 시간이 빠르지만 위 과정에서 시간이 많이 소요된다. 색인 순차 파일 키 값 순서대로 저장하고, 각 레코드의 실제 주소가 저장된 색인을 관리하는 방식니다. 순차 처리/임의 처리가 모두 가능하지만, 접근 시간이 직접 하는거 보다 느리다. 디스크 스케줄링 기법 데이터가 디스크 여러곳에 저장되어 있을 때 디스크 헤드의 이동 경로를 결정하는..
2020.10.06 -
기억 장치 관리 전략
반입 전략 프로그램이나 데이터를 보조기억장치에서 주기억장치로 언제 가져올지를 결정하는 전략이다. 요구 반입 - 요구가 있을때마다 페이지나 세그먼트를 주기억장치로 가져오는 전략 예상 반입 - 앞으로 요구될 가능성이 높은 프로그램이나 데이터를 예상하여 주기억장치로 미리 가져오는 전략 배치 전략 프로그램이나 데이터를 주기억장치 내 어디에 둘 것인지 결정하는 전략이다. 최초 적합 - 수용가능한 공간중 처음 만나는 공간에 배치 최적 적합 - 수용 가능한 공간중 가장 알맞게 배치하여 남기는 공간을 최소화 최악 적합 - 공백이 제일 많게 배치 교체 전략 최적화(OPT): 새로운 페이지를 가져오는 대신 가장 오랫동안 사용하지 않을 페이지와 교체하는 전략. 앞으로 페이지 사용을 미리 예상하여 교체한다는점이 특징이다. F..
2020.10.06 -
프로세스 스케줄링
프로세스 스케줄링 방식은 크게 선점, 비선점형 방식으로 나누어져 있다. 선점형은 일괄 처리 방식에, 비선점형은 실시간 시스템에 적합하다. 선점형 스케줄링 FIFO (선입선출) 먼저 입력된 작업을 먼저 처리하는 방식이다. 아무리 우선순위가 높더라도 먼저 들어온 작업부터 처리하므로 문제가 생길 수 있다. SJF (short job first) 작업의 실행 시간 추정치가 가장 짧은 작업부터 처리하는 방식이다. 짧은 작업들을 우선 처리하게 되기 때문에 반환시간을 줄일 수 있다. 하지만 시간이 많이 소요되는 작업은 무한 연기될 수 있다는 단점이 있다. HRN SJF의 무한 연기 현상을 극복하기 위해 개발된 스케줄링 방법으로, 서비스 시간과 대기했던 시간을 동시에 고려하여 우선순위를 결정한다. 비선점형 스케줄링 라..
2020.10.06 -
병행 프로세스의 동기화 유형 [임계 영역, 상호 배제, 세마포어, 모니터]
한 프로세스가 공유 메모리를 사용하고 있을 때, 다른 프로세스들이 사용하지 못하도록 배제시키는 기법이다. 교착 상태가 발생하지 않음을 보장하는 데커 알고리즘, 피터슨 알고리즘을 통해 상호 배제 기법을 구현한다. 교착 상태 : 둘이상의 프로세스들이 서로 다른 프로세스가 차지하고 있는 자원을 무한정 기다리고 있는 상태. 교착상태가 발생할 때 : 1. 상호 배제 - 중복이 안되도록 막기 때문에 계속 기다려질 수 있다. 2. 점유와 대기 - 자원을 점유하고 있는 프로세스가 다른 자원을 기다릴때 나타남 3. 비선점 - 사용이 종료될 때까지 강제로 해제할 수 없을때 나타남 4. 순환 대기 - 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있을때 나타남 임계 구역 상호 배제의 문제로 자원이 프로세스..
2020.10.06 -
프로세스와 스레드
프로세스 레지스터, 스택, 포인트, 프로그램 등의 집합체로 실행중인 프로그램 인스턴스를 말한다. cpu에 의해 수행되는 프로그램으로 os가 관리하는 실행 단위이다. 특징 : 우선순위 지정이 가능하다. 상황에 따른 상태를 전이 수행한다. 다중 사용자 컴퓨터 시스템에서 사용자 요구 처리의 핵심이다. 자원 할당, 연산, 통신 등의 역할을 한다. 상태 구분 준비 (ready) : cpu를 사용할 수 있도록 대기하고 있는 상태로 바로 실행할 수 있다. 실행 (run) : 하나의 프로세스가 cpu를 차지하여 실행 중 대기 (blocked) : 프로세스가 사건(입출력 등)이 발생하기를 기다리고 있는 상태 종료 (exit) : 프로세스가 해제됨 프로세스 제어 블록 운영체제가 프로세스를 제어하기 위해 정보를 저장해 놓는..
2020.10.06