일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 운영체제
- 아두이노 소스
- Arduino
- map
- list
- Algorithm
- arduino compiler
- LineTracer
- queue
- c++
- priority_queue
- stl
- Array
- 컴퓨터 그래픽스
- 아두이노
- Stack
- WinAPI
- 통계학
- set
- 자료구조
- directx
- 라인트레이서
- vector
- html
- 아두이노 컴파일러
- 시스템프로그래밍
- 수광 소자
- Visual Micro
- Deque
- C언어
- Today
- Total
목록Computer Theory (24)
Kim's Programming
1. 스케줄링의 이해 1. 스케줄링의 개념 단일 처리 시스템에서는 실행 중인 프로세스가 입출력을 요청하면 이 프로세스가 실행을 마칠 떄까지 사용하던 자원을 대기해야하므로 효율이 떨어진다. 반면에 다중 프로세스에서는 여러프로세스가 메모리에 올라가있어서 실행중인 프로세스가 입출력을 요청하면 운영체제가 다른 프로세스에 할당된 프로세서를 할당한다. 따라서 단일 처리시스템에 비해서 다중 프로그래밍에서는 다음 장점을 얻을 수 있다. 프로세서 이용율을 높일 수 있다.프로세서 처리율(주어진 시간에만 처리하는 작업량)이 증가한다.다중 프로그래밍에서 프로세서를 할당할때 어떤 프로세스를 선택할 때 필요한데 그 방법을 스케줄링이라한다. 스케줄링은 여러 프로세스가 번갈아 사용하는 프로세서를 어떤 시점에 어떤 프로세스에 할당할지..
1. 교착 상태의 개념과 발생 원인 1. 교착 상태의 개념 다중 프로그래밍 시스템에서는 프로세스가 결코 일어나지 않을 사건을 기다리는 상태가 되면 교착상태에 빠졌다고 말한다. 교착 상태는 하나 이상의 작업에 영향을 주기 때문에 무한 대기나 기아 상태보다 더 심한 문제를 일으킨다. 교착 상태는 시스템 자원에 요구가 뒤 엉킨 상태로, 두 프로세스가 사용하는 자원(비공유)을 서로 기다리고 있을 때 발생한다. 따라서 둘 이상의 작업이 중단되고 프로세스들은 서로 사용할 자원을 기다리고만 있게 된다. 두 프로세스는 서로 차단되어 영원히 기다리게 되는데 이 상황이 바로 교착상태이다. 둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 서로 기다릴 때 교착상태가 발생한다. 초기 일괄 처리 시스템에서는 교착 상태..
3. 상호배제 방법들 1. 데커의 알고리즘 데커의 알고리즘은 두 프로세스가 동시에 임계 영역에 진입하려고 시도하면 순서에 따라 오직 하나만 임계 영역에 들어가도록 허용한다. 하지만 프로세스 2개가 동시에 임계 영역에 진입하도록 플래그를 설정하면 교착 상태가 발생할 수 있다. 12345678910111213141516171819202122232425262728293031323334353637383940414243//프로세스가 공유하는 데이터//int turn;bool flags[2];////////////////////////////// void main(){ flags[0] = false; flags[1] = false; turn = 0; //Shared Variable 0 또는 1 //Process P..
1. 병행 프로세스 1. 병행 프로세스의 개념 * 프로세스병행 프로세스: 동시에 여러개 프로세스가 진행되고 있는 경우이나 어느 한 순간에는 하나의 프로세스만 실행 됨.(프로세스 1개)병렬 프로세스: 동시에 여러개의 프로세스가 실행되고 있는 것(프로세스 n개) 2. 병행 프로세스의 해결 과제 공유 자원을 상호 배타적으로 사용해야 한다. 통신망 등은 한순간에 프로세스 하나만 사용해야 한다.병행 프로세스 간에는 협력이나 동기화가 되어야한다.실행 순서에 맞게 수행되어야 한다.교착 상태를 해경해야한다.병행 프로세스를 수행하는 과정에서 발생하는 상호배제를 보장해야 한다. 2. 상호배제와 동기화 1. 상호배제의 개념 상호배제는 병행 프로세스에서 프로세스 하나가 공유 자원을 사용할 때 다른 프로세스들이 동일한 사원을 ..
1. 스레드의 개념과 상태 변화 1. 스레드의 개념 프로세스는 자원과 제어로 구성되어 있는데 이 중 제어만 분리한 실행 단위를 스레드하고 한다. 독립적으로 스레드가 갖는 것스레드 실행 환경 정보지역 데터스택 (공유하는 것들) = 프로세스의 정보 코드(Code) 영역전역 데이터힙(Heap) 영역 스레드 중에서 프로세스의 속성 중 일부가 들어 있는 것을 경량 프로세스(LWP: Light Weight Process)라고 한다. 하나의 프로세스에 스레드가 하나인 전통적인 프로세스를 중량 프로세스(HWP: Heavy Weight Process)라고 한다. 프로레스가 하나인 서로 다른 프로세서에서 프로그램의 다른 부분을 동시에 실행할 수 있는데 스레드를 이용하면 다음 이점이 있다.사용자 응답성 증가프로세스의 자원과..
1. 프로세스의 개념과 상태 변화 1. 프로세스의 개념 다중프로그래밍 환경에서는 여러 프로그램을 메모리에 적재하여 병행 실행할 수 있어 컴퓨터의 효율을 높일 수 있다. 병행 실행하는 프로그램은 컴퓨터 자원을 공유하므로 이를 제어하는 방법이 필요한데 이 과정에서 해당 절의 주제인 프로세스가 등장했다. 프로세스의 정의실행중인 프로그램실행중인 프로시저프로세서에 할당하여 실행할 수 있는 개체 프로세스가 실행 중인 프로그램이 되려면 프로세서, 메모리, 파일, 입출력장치 같은 자원이 필요한데 프로세스를 생성하거나 실행할 때 이 자원을 할당한다. 그리고 프로세서는 현재 활동의 상태를 나타내는 프로그램 카운터, 프로세서의 현재 활동(레지스터 내용)도 포함한다. 프로그램은 컴파일한 코드와 초기화 전역변수, 문자열과 문자..
2. 운영체제의 유형 운영체제 유형 1. 일괄 처리 시스템 2. 다중 프로그래밍 시스템 3. 다중 처리 시스템 4. 시분할 시스템 5. 실시간 처리 시스템 6. 분산 처리 시스템 1. 다중 프로그래밍 시스템다중프로그래밍은 프로세[서가 유휴 상태일 때 실행 중인 둘 이상의 작업이 프로세스를 전환(인터리빙)하여 사용할 수 있도록 동작한다. 다중 프로그래밍 시스템의 구조 다중 프로그래밍에서의 작업 처리 방법 잠정 : 높고 효율적인 프로세서 사용률(효율적인 운영)이 증가하여 마치 많은 사용자의 프로그램이 거의 동시에 프로세서를 할당 받는 듯한 느낌을 준다. 단점: 다중프로그래밍 운영체제는 아주 복잡하다. 2. 시분할 시스템시분할 시스템은 다중프로그래밍을 논리적으로 확장한 개념으로, 프로세서가 다중 작업을 교대로..
1. 운영체제의 개념과 발전 1. 운영체제의 개념 운영체제란 사용자가 응용 프로그램을 실행할 수 있는 기반 환경을 제공하는 것을 의미한다. 사용자 입장에서 보면 다음 두 가지의 역할로 나눌 수 있다. 컴퓨터를 편리하게 사용할 수 있도록 도와준다. (사용자 편의성 제공) 하드웨어를 효율적으로 사용할 수 있도록 여러 기능을 제공한다. (자원의 효율적 사용) User : 어떤 작업을 수행하려고 컴퓨터를 사용하는사람, 창지, 다른 컴퓨터를 의미한다. Software : 컴퓨터가 기능을 수행하는데 필요한 모든 프로그램들 (Utilities, Applications software, Operating System으로 구성) System software : 컴퓨터 자원을 관리하고 응용 프로그램의 실행을 지원하여 컴퓨..