본문 바로가기

Program18

(BOJ) 2178번 풀이 #include #include #include using namespace std; queueq; int N,M,map[102][102]={0,},chk[101][101]; void BFS(int x,int y, int c){ q.push(pair(y,x)); chk[y][x]=c; while(!q.empty()){ int cx = q.front().first; int cy = q.front().second; q.pop(); // cout 2022. 1. 10.
[Program] (윈도우 시스템 프로그래밍) MailSlot 기반 IPC 프로세스를 여러개 생성하는 경우, 프로세스간의 통신이 필요할 때가 있다. 프로세스간 데이터 송/수신은 메모리공유로 볼 수 있다. 공유할 수 있는 메모리공간에 A가 넣고, B 가 가져가면, 이것을 통신으로 볼 수 있다. 프로세스간 통신의 내부적인 메커니즘은 결국 메모리공유이다. 프로세스별 메모리 영역(가상메모리)은 완전히 분리되어있다. 안정선을 위해 os 가 막았는데, 같이 해결방안도 제시하고있다. 그것은, IPC (Inter Process Communication) 로, 이것을 이용해 프로세스간 통신을 할 수 있다. 그 중에서 MailSlot 기반 IPC 를 예제로 들어 설명해보려한다. receiver 프로세스가 CreateMailslot 함수를 통해 우체통(MailSlot)을 만든다. 그러면, send.. 2021. 5. 23.
[Program] (윈도우 시스템 프로그래밍) 커널 오브젝트와 핸들의 관계 부모 프로세스 A 핸들 테이블 자식 프로세스 B 핸들 테이블 운영체제 핸들 3 -> 프로세스 A 의 커널오브젝트 핸들 3 -> 프로세스 B 의 커널 오브젝트 프로세스 A 커널 오브젝트 (UC 2) 핸들 7 -> 프로세스 B 의 커널 오브젝트 프로세스 B 커널 오브젝트 (UC 2) 핸들 4 -> 파일 커널 오브젝트 파일 커널 오브젝트 (UC 1) UC -> usage count. 프로세스 A 커널 오브젝트 UC 2 ( 프로세스 A 를 실행한 파일탐색기, 자기자신 ) 프로세스 B 커널 오브젝트 UC 2 ( 부모프로세스, 자기 자신 ) 파일 커널 오브젝트 UC 1 ( 프로세스 B ) 핸들 값 ( 테이블 )은 프로세스에 종속적이다. 프로세스 B 가 종료되면, UC 가 감소할 뿐이지, 커널 오브젝트가 감소하는 것.. 2021. 4. 15.
[Program] (윈도우 시스템 프로그래밍) 커널 오브젝트와 핸들러 커널은 운영체제의 핵심적인 부분 커널 오브젝트는 커널에 의해 관리되는 리소스의 정보를 담고 있는 데이터 블록 (구조체) 예시 : 파일을 열기위해 fopen 함수를 호출하면, os 에서 파일이 있는지 확인하고, 생성하며 커널 오브젝트를 통해 리소스를 생성 및 관리한다. 커널 오브젝트는 파일을 어디까지 읽었는지, 접근권한 (속성에서 확인가능) 등의 정보를 담고있다. 만약 파일을 read 하려면 os 에서 막는다. 이렇게 우리는 os 에 명령하고 실제로 리소스를 생성하고 관리하는 것은 os에서. 접근정보, 커서위치 등의 정보가 담긴 커널 오브젝트를 통해 리소스를 관리한다. os 에서 관리하는 대표적인 리소스들이다. 리소스마다 각각의 필요한 정보가 다르므로 각각의 커널 오브젝트를 통해 관리한다. 우선순위를 높이.. 2021. 3. 31.