교착상태(deadlock) 2개 이상의 프로세스가 서로 상대방의 작업이 끝나기만을 기다리고 있는 상태 결과적으로 아무도 완료하지 못함 교착상태가 아닌 경우 프로세스1: 요구 --자원획득--> 사용 --> 해제 프로세스2: 요구(대기) --자원획득--> 사용 --> 해제 교착상태인 경우 프로세스1: 자원1요구 --자원1획득--> 사용 --> 자원2요구(대기) 프로세스2: 자원2요구 --자원2획득--> 사용 --> 자원1요구(대기) 교착상태의 필요조건 네가지조건이 동시에 만족될 경우 교착상태가 발생할 수 있음 상호배제 조건 프로세스 들이 자원에 대한 배타적인 통제권을 요구 적어도 하나 이상의 자원은 공동사용될 수 없음 즉, 필요로 하는 자원을 다른 프로세스가 점유하고 있으면 반드시 대기해야 함 점유대기조건 ..
네트워크의 개념 그물처럼 연결되어 동작하는 것 네트워크의 역사 1969: ARPANET: 현재 인터넷의 시초 현재: Internet: 지구폰 네트워크 데이터의 전송 송신자가 데이터를 송신할 때 여러개의 패킷으로 나누어서 수신자에게 보냄 네트워크의 구성 정보전달 과정 다양한 역할을 수행하는 여러 종류의 장비를 통해 정보가 전달 유선 전송매체 장치와 자잋를 물리적인 케이블로 직접 연결하는 매체 연선, 동축케이블, 광섬유 케이블 무선 전송매체 물리적인 매개체가 없이 통신을 구성하는 방식 편의성 뿐만 아니라 케이블 설치가 어려운 지형에 적용 블루투스, Wi-fi, LTE, Li-fi 신호 변환장치 단말장치에 전달되는 또는 전달하는 정보를 처리하기 위해 아날로그 신호를 디지털 신호로 상호 변환 단말장치(송신). ..
프로세스의 상호협력 병행 프로세스들의 상호협력 공통작업을 수행하기 위해 서로 협동하는 경우 예: 생산자/소비자 문제, 판독기/기록기 문제 생산자/소비자 문제 유한 버퍼 문제 생산자 ---버퍼---> 소비자 생산자: 버퍼에 데이터를 채우는 프로세스 버퍼가 가득차 있다면 생산자는 대기해야함 소비자: 버퍼에 있는 데이터를 읽어내는 프로세스 버퍼가 비어 있다면 소비자는 대기해야함 상호배제, 동기화 필요 세마포어 이용 - mutex, empty, full 생산자가 버퍼에 넣는 과정과 소비자가 버퍼에서 데이터를 꺼내는 작업이 서로 상호배제 되어야 함 생산자 프로세스 nextp에 데이터 항목을 생산 p(empty); empty의 초기값 n 버퍼가 꽉차있다면 empty값은 0 p(mutex); --> nextp를 버퍼..
컴퓨터의 구성 소프트웨어: 다양한 장치들을 동작시켜 특정 작업을 해결하는 프로그램 종류 시스템 소프트웨어 하드웨어를 제어, 관리할 수 있도록 설계된 소프트웨어 응용 소프트웨어를 실행하기 위한 환경을 제공 다양한 장치들이 서로 유기적으로 연관하여 동작시켜 특정작업을 수행할 수 있는 환경을 조성하는 프로그램 종류 운영체제 응용 소프트웨어가 효과적으로 작동할 수 있는 환경을 조성 처리능력 향상, 응답시간 축소, 사용가능도 향상, 신뢰성 증가 기능 사용자 인터페이스 컴퓨터와 사용자를 연결해주는 매개체 사용자와 컴퓨터가 상호작용하는 방법을 의미 CLI(Command Line Interface), GUI(Graphic User Interface) 프로세스 관리 프로세스는 실행되고 있는 상태의 프로그램 여러 프로그램..
병행성(concurrency) 여러개의 프로세스 또는 쓰레드가 동시에 실행되는 시스템의 특성 병행 프로세스 동시에 실행되는 여러 개의 프로세스 또는 쓰레드 병행 프로세스의 실행 형태 CPU의 개수에 따른 병행 프로세스의 실행 형태 하나의 CPU에서 인터리빙 형식으로 실행 여러개의 CPU에서 병렬 처리 형식으로 실행 메모리 구조에 따른 병행 프로세스의 실행 형태 강결합 멀티프로세서 시스템 공유 메모리 구조 약결합 멀티프로세서 시스템 분산 메모리 구조(통신선: 네트워크 사용) 병행 프로세스들이 상호작용 하는 경우 발생 공유자원 점유 문제 동기화 문제 통신 문제 분산 메모리구조의 경우 컴퓨터 간의 통신을 어떻게 할 것인지 상황에 따른 구분 단일 프로세스 내의 병행성 우선순위 그래프 정점: 문장 방향 있는 간선..
전형적인 분할정복 방법이 적용된 알고리즘 분할 배열을 동일한 크기의 두 개의 부분배열로 분할하고 입력 크기 n인 배열을 크기 n/2인 두 부분배열로 분할한다. 정복 각각의 부분배열을 순환적으로 정렬한 후 두 부분배열을 정렬한다. 결합 정렬된 두 부분배열을 합병하여 하나의 정렬된 배열을 만듦 정렬된 두 부분배열을 합병하여 하나의 정렬된 배열을 만든다. 합병정렬 Merge() Merge(B[], C[], n, m){ i=j=k=0; while(i O(in) 최솟값 찾기 각 데이터를 하나씩 모두 비교하는 방법 n개의 데이터에 대해서 적어도 (n-1)번 비교가 필요 -> O(n) 최솟값과 최댓값 모두 찾기 방법1: 최솟값 찾은 후 최댓값 찾기 n개의 데이터에서 최솟값을 찾는데 (n-1)번 비교 + (n-1)개의..
- Total
- Today
- Yesterday
- 구조체
- 동적프로그래밍
- 최단경로
- 클래스
- C++
- Stack
- Java
- react
- 교착상태
- 인접리스트
- 스텍
- stackframe
- server side rendering
- 입출력장치
- dfs
- javascript
- C
- 배열
- 재귀함수
- 인접행렬
- BFS
- 퀵정렬
- 자료구조
- 세마포어
- 병행프로세스
- 운영체제
- 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 |