
-목차- 1. 범용 레지스터 2. 명령 포인터 레지스터 3. Segment Register 범용 레지스터 범용적으로 사용되는 레지스터들입니다. IA-32에서 각 범용 레지스터들의 크기는 32비트입니다. EAX(Extended Accumulator Register) 산술 연산 명령에서 상수/변수 값을 저장하거나 함수의 리턴 값이 저장되는 용도로 사용됩니다. EBX(Extended Base Register) EBX는 DS 세그먼트에 대한 포인터를 주로 저장하고 ESI나 EDI와 결합하여 인덱스에 사용됩니다. EBX는 메모리 주소 지정을 확장하기 위해 인덱스로 사용될 수 있는 유일한 범용 레지스터입니다. ECX(Extended Counter Register) 반복 명령어 사용 시 반복 카운터로 사용됩니다. E..

-목차- 1. SUID/SGID 2. STID 3. 실제사용자(Real User ID)와 유효 사용자(Effective User ID) 4. setreuid SUID/SGID 루트가 아닌 사용자들이 잠깐 루트의 사용권한을 써서 프로그램을 실행해야 할 필요가 있을때 주는 권한입니다. S*ID가 설정된 파일은 특정 명령어를 실행하여 root권한 획득 및 정상 서비스 장애를 발생시킬 수 있으며, 로컬 공격에 많이 이용되므로 보안상 철저한 관리가 필요합니다. SUID의 절대표기값은 4000입니다. 일반사용자가 소유자 권한으로 실행할 수 있도록 하며, 보안상 문제가 생길 확률이 높기 때문에 조심해서 사용하여야 합니다. SGID의 절대표기값은 2000입니다. 일반사용자가 소유 그룹의 권한을 실행할 수 있도록 합니다..

위상정렬(Topological Sort) 위상정렬(topological sorting)은 유향 그래프의 꼭짓점들(vertex)을 변의 방향을 거스르지 않도록 나열하는 것을 의미합니다. 위상정렬을 가장 잘 설명해 줄수 있는 예로 대학의 선수과목 구조를 들 수 있습니다. 만약 특정 수강과목에 선수 과목이 있다면 그 선수 과목부터 수강해야 하므로, 특정 과목들을 수강해야 할 때 위상 정렬을 통해 올바른 수강 순서를 찾아낼 수 있습니다. 이와 같이 선후 관계가 정의된 그래프 구조 상에서 선후 관계에 따라 정렬하기 위해 위상정렬을 이용할 수 있습니다. 정렬의 순서는 유향 그래프의 구조에 따라 여러개의 종류가 나올 수 있습니다. 위상 정렬이 성립하기 위해서는 반드시 그래프의 순환이 존재하지 않아야합니다. 즉, 그래..

서론 다익스트라 알고리즘은 도로 교통망 같은 곳에서 나타날 수 있는 그래프에서 꼭짓점 간의 최단 경로를 찾는 알고리즘입니다. 이 알고리즘은 컴퓨터 과학자 에츠허르 다익스트라가 1956년에 고안했으며 삼년 뒤에 발표했습니다. 최단 경로 알고리즘은 네트워크 라우팅 프로토콜에서 널리 이용되며, 특히 IS-IS(Intermediate System to Intermediate System)와 OSPF(Open Shortest Path First)에서 주로 사용됩니다. 그래프에서 정점까지 최단 경로를 구하는 문제는 여러가지 방법이 있습니다. 하나의 정점에서 다른 하나의 정점까지 최단 경로를 구하는 문제 하나의 정점에서 다른 모든 정점까지의 최단 경로를 구하는 문제 하나의 목적지로 가는 모든 최단 경로를 구하는 문제..

목차 그래프란? 그래프와 트리의 차이 무향그래프, 유향(방향)그래프 인접, 가중치 그래프 그래프 표현 인접 행렬 인접 리스트 간선 리스트 그래프 탐색 깊이 우선 탐색(DFS) 너비 우선 탐색(BFS) 그래프 표현 방법과 시간복잡도 그래프란? 그래프란, 객체(사물 또는 추상적 개념)들과 객체들 사이의 연결관계를 표현합니다. 예를 들면 지하철에서 다른 역으로 가는 최단 경로를 찾아주는 서비스도 그래프 알고리즘을 사용합니다(무향 그래프).또한, 정점(Vertex)들의 집합과 정점을 연결하는 간선(Edge)들의 집합으로 구성된 자료구조입니다. 다음과 같이 그래프를 표현할 수 있습니다. G = (V, E), V = 정점들의 집합, E = 간선들의 집합. V개의 정점을 가지는 그래프는 최대 V(V -1)/2 개의 ..
CPU scheduling 문맥교환(Context Switching) 새로운 프로세스에게 CPU를 할당하기 위해 현재 CPU가 할당된 프로세스의 상태 정보를 저장하고, 새로운 프로세스의 상태 정보를 설정한 후 CPU를 할당하여 실행되도록 하는 작업. (Overhead가 발생하는 주요 원인) CPU 스케줄링이란? 메모리에 있는 준비(Ready) 상태의 프로세스 중 하나를 선택해 CPU자원을 할당하는 것 CPU 스케줄링이 일어나는 시점 실행상태에서 대기상태로 전환될 때 (예, 입출력 요청) - Non preemptive(비선점) 실행상태에서 준비상태로 전환될 때 (예, 인터럽트 발생) - preemptive(선점) 대기상태에서 준비상태로 전환될 때(예, 입출력이 종료될 때) 종료될 때(Terminated) ..