장치의 개념 컴퓨터 시스템의 구성 다양한 장치들 CPU, 메모리: 프로세스 실행에 필수 나머지 장치들: 프로세스 실행 시 데이터 입력이나 출력에 사용하는 입출력장치 장치의 구분 입출력장치의 구분 장치의 기능적 특징과 장치 관리자의 관리 방법에 따라 구분 전용장치 한 번에 단지 하나의 프로세스에만 할당 예: 테이프 드라이브, 프린터, 플로터 등 단점: 대기시간이 길어질 수 있음 공용장치 여러 프로세스에 동시에 할당 예: 디스크 같은 직접접근 저장장치 스케줄링 기법 필요 가상장치 전용장치를 가상의 공용장치처럼 보이게 함 디스크 같은 공용장치를 이용 예: 스풀링을 적용한 플로터 등 장치의 구성 논리적 구성 사용자 응용 프로그램 운영체제 하드웨어(장치, 장치제어기) 장치제어기(하드웨어) 장치를 직접적으로 다루는..
페이지 교체기법 모든 페이지 프레임이 사용되고 있을 때 새로 적재되어야 할 페이지를 위하여 어느 페이지를 교체할 것인가를 결정 교체 대상 선택 -> 보조기억장치에 보관 -> 새로운 페이지를 적재 교체대상 선택 최적화의 원칙 앞으로 가장 오랫동안 사용되지 않을 페이지를 교체 대상으로 선택 이론적으로는 최적이나 미래를 예측할 수 없어 실현 불가능 선택을 위한 기본 정책 대체로 좋은 결론을 내리면서 시간 및 공간의 오버헤드가 적은 방법 교체 제외 페이지 페이징을 위한 슈퍼바이저 코드 영역, 보조기억장치 드라이버 영역, 입출력장치를 위한 데이터 버퍼 영역 등 페이지 교체 알고리즘 FIFO(First-In-First-Out) 페이지 교체기법 메모리 내에 가장 오래있었던 페이지를 교체 구현: FIFO 큐 이용 단점..
가상메모리의 개념 메모리 크기보다 더 큰 기억공간이 필요한 프로세스를 실행할 수 있게 하는 방법 연속 메모리 할당: 프로세스 실행 불가 가상 메모리: 프로세스 실행 가능 전체중에서 실제로 필요한 일부만 메모리에 올리기 가상 메모리 프로세스에 의해 참조되는 주소를 메모리에서 사용하는 주소와 분리 프로세스 가상주소 가상주소공간 V 메모리 실주소 실주소공간 R 현재 필요한 일부만 메모리에 적재 사상(mapping) 프로세스 실행을 위해 가상주소를 실주소로 변환 동적 주소 변환(DAT): 사전에 모든 것을 처리하지 않고 실시간으로 프로세스가 실행되는 동안 사상 인위적 연속성 가상주소 공간에서는 연속이지만 실주소 공간에서도 연속일 필요는 없음 블록 단위 주소 변환 블록 단위로 분류하여 각 블록이 메모리의 어디에 ..
프로세스와 메모리 프로세스의 동작 프로그램 카운터를 참조하여 메모리로부터 수행될 명령을 읽어 CPU의 해당 명령을 수행 기억장치 계층구조 적절한 비용으로 높은 성능을 낼 수 있도록 계층적으로 구성 CPU(레지스터 캐시 기억장치 메모리 보조기억장치 CPU쪽으로 갈수록 접근속도가 빠름, 비트당 기억장치 비용이 높음 보조기억장치쪽으로 갈수록 대용량 메모리 관리 메모리 호출 언제 새로운 프로세스를 메모리에 둘 것인가? 메모리 배치 실행될 프로세스를 메모리 내의 어느 곳에 둘 것인가? 메모리 교체 메모리가 꽉 찬 상태에서 새로운 프로세스를 적재해야 한다면 어떤 프로세스를 제거할 것인가? 그 외 메모리를 고정 분할할 것인가 동적 분할할 것인가? 프로세스의 적재 영역이 고정적인가 유동적인가? 단일 프로그래밍 환경 초..
교착상태 회피 프로세스의 자원 사용에 대한 사전 정보를 활용하여 교착상태가 발생하지 않는 상태에 머물도록 하는 방법 사전 정보: 현재 할당된 자원, 가용상태의 자원, 프로세스들의 최대 요구량 프로세스의 상태 영역 안전상태 교착상태를 회피하면서 각 프로세스에게 그들의 최대 요구량까지 빠짐없이 자원을 할당할 수 있는 상태 안전 순서열이 존재 불안전상태 교착상태 안전 순서열이 존재하지 않음 안전 순서열 순서 있는 프로세스의 집합 각 pi에 대해 pi가 추가로 요구할 수 있는 자원 소요량이 현재 가용 상태이거나 혹은 현재 가용인 자원에 pj(단, j
교착상태(deadlock) 2개 이상의 프로세스가 서로 상대방의 작업이 끝나기만을 기다리고 있는 상태 결과적으로 아무도 완료하지 못함 교착상태가 아닌 경우 프로세스1: 요구 --자원획득--> 사용 --> 해제 프로세스2: 요구(대기) --자원획득--> 사용 --> 해제 교착상태인 경우 프로세스1: 자원1요구 --자원1획득--> 사용 --> 자원2요구(대기) 프로세스2: 자원2요구 --자원2획득--> 사용 --> 자원1요구(대기) 교착상태의 필요조건 네가지조건이 동시에 만족될 경우 교착상태가 발생할 수 있음 상호배제 조건 프로세스 들이 자원에 대한 배타적인 통제권을 요구 적어도 하나 이상의 자원은 공동사용될 수 없음 즉, 필요로 하는 자원을 다른 프로세스가 점유하고 있으면 반드시 대기해야 함 점유대기조건 ..
프로세스의 상호협력 병행 프로세스들의 상호협력 공통작업을 수행하기 위해 서로 협동하는 경우 예: 생산자/소비자 문제, 판독기/기록기 문제 생산자/소비자 문제 유한 버퍼 문제 생산자 ---버퍼---> 소비자 생산자: 버퍼에 데이터를 채우는 프로세스 버퍼가 가득차 있다면 생산자는 대기해야함 소비자: 버퍼에 있는 데이터를 읽어내는 프로세스 버퍼가 비어 있다면 소비자는 대기해야함 상호배제, 동기화 필요 세마포어 이용 - mutex, empty, full 생산자가 버퍼에 넣는 과정과 소비자가 버퍼에서 데이터를 꺼내는 작업이 서로 상호배제 되어야 함 생산자 프로세스 nextp에 데이터 항목을 생산 p(empty); empty의 초기값 n 버퍼가 꽉차있다면 empty값은 0 p(mutex); --> nextp를 버퍼..
병행성(concurrency) 여러개의 프로세스 또는 쓰레드가 동시에 실행되는 시스템의 특성 병행 프로세스 동시에 실행되는 여러 개의 프로세스 또는 쓰레드 병행 프로세스의 실행 형태 CPU의 개수에 따른 병행 프로세스의 실행 형태 하나의 CPU에서 인터리빙 형식으로 실행 여러개의 CPU에서 병렬 처리 형식으로 실행 메모리 구조에 따른 병행 프로세스의 실행 형태 강결합 멀티프로세서 시스템 공유 메모리 구조 약결합 멀티프로세서 시스템 분산 메모리 구조(통신선: 네트워크 사용) 병행 프로세스들이 상호작용 하는 경우 발생 공유자원 점유 문제 동기화 문제 통신 문제 분산 메모리구조의 경우 컴퓨터 간의 통신을 어떻게 할 것인지 상황에 따른 구분 단일 프로세스 내의 병행성 우선순위 그래프 정점: 문장 방향 있는 간선..
- Total
- Today
- Yesterday
- 입출력장치
- Stack
- 세마포어
- 배열
- C++
- 병행프로세스
- C
- 인접리스트
- stackframe
- javascript
- 스텍
- react
- 알고리즘
- 동적프로그래밍
- 클래스
- 구조체
- 퀵정렬
- 재귀함수
- 자료구조
- dfs
- 이진탐색
- server side rendering
- 인접행렬
- 최단경로
- BFS
- Java
- 운영체제
- 소프트웨어
- 교착상태
- client side rendering
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |