Process의 생성과 종료 [ Process 생성 ] · Directed : 지시된 프로세스 생성. : PCB 초기화. · Cloning : 정확한 복제본 생성. : 부모의 가상 주소의 복사본을 가져옴. → Code, Stack, Heap, Register 등등 동일하지만, Pid는 다름. : fork() 시스템 콜로 실행. → Process Spawning이라고 함. : 서로 분리된 State로 진행. → 서로 독립적. : Parent와 Child의 실행순서는 비결정적. : 한 번의 호출로 두 번의 반환이 일어난다. → Call once, return twice ( 부모 프로세스는 자식 프로세스의 pid를,자식 프로세스는 0을 Return ) : 프로세스 생성 속도가 빠르고, 추가 작업 없이 자원 상..
Process와 Context Switching 프로세스와 컨텍스트 스위칭 [ Program & Process ] Program : 파일 시스템에 존재하는 실행 가능한 파일. : 실행되지 않은 정적(Static)인 상태. : Stack과 Heap이 존재하지 않음. Process : Program이 실행 중인 동적(Dynamic)인 상태. : 추상적인 부분이 존재. 1) 각각의 Program이 CPU를 독점적으로 사용하는 것 처럼 보이게 하지만, 뒤에는 수많은 동작 존재. → Context Switching에 의해 제공. 2) 각각의 Program이 Main Memory를 독점적으로 사용하는 것으로 보임. → 가상 메모리(Virtual Memory)에 의해 제공. : Kernel Code로 관리. · Mu..
백준 12100번 : 2048 (Easy) 등급 : Gold II 12100번: 2048 (Easy) (acmicpc.net) 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 사용 알고리즘 : Brute-Force, Backtracking 사용 자료구조 : Deque 각 블럭의 이동을 모두 직접 구현해주고, 그에 따른 최대값을 도출하는 문제. ( 전치 행렬에 대한 부분에서 헷갈리실 수 있다고 생각이 드는데, 추후에 필요하면 더 업데이트 하도록 하겠습니다 ) 1. 전치행렬로 변환시키는..
백준 4196번 : 도미노 등급 : Platinum IV 4196번: 도미노 (acmicpc.net) 4196번: 도미노 도미노는 재밌다. 도미노 블록을 일렬로 길게 늘어세운 뒤 블록 하나를 넘어뜨리면 그 블록이 넘어지며 다음 블록을 넘어뜨리는 일이 반복되어 일렬로 늘어선 블록들을 연쇄적으로 모두 쓰러 www.acmicpc.net 사용 알고리즘 : SCC 사용 자료구조 : Vector 각 도미노를 SCC 단위로 나눠주고, 각 SCC에 들어오는 간선 Indegree값을 저장해 푸는 문제. 1. SCC를 구하기 위해 순방향으로 DFS, 그리고 스택에 쌓인 순서대로 역방향 DFS를 진행해준다. (기존 SCC 알고리즘) 2. 역방향 DFS를 순회할 때 처음 방문하는 정점(Vertex)에는 SCC의 번호를 달아준..
Exceptional Control Flow와 System Call 예외적인 제어 흐름과 시스템 콜 [ Mode ] Mode Bit : 모드를 구분해주는 비트. Dual Mode : 운영 체제를 보호하기 위해 자원에 대한 접근 권한을 모드로 나눠놓는 방법. : 보통 0일 때 User Mode, 1일 때 Kernel Mode라 한다. 보호 영역 1. Privileged Instruction : Kernel Mode에서만 사용 가능한 명령어들. : Interrupt의 활성·비활성 관리, 프로세스 홀팅(halting), Mode Bit 변경, I/O 직접 접근 등 2. Memory Access : 유저 코드가 Kernel을 수정하지 못하도록 방지. : 아무 메모리나 읽고 쓰는 것을 방지. 3. Access t..