CS/면접준비
-
[OS] - DeadLockCS/면접준비 2022. 9. 29. 23:10
DeadLock 2개 이상의 Process 혹은 Thread가 서로 Resource를 얻지 못하여 다음 처리를 하지 못하는 상태 무한히 Resource를 기다리게 되는 상태 ( Wait ) System 한정된 Resource가 여러 곳에서 사용되면 발생한다. 하나의 Process에서 Resource를 요청하였을 때, 동시에 Resource를 사용할 수 없는 상황이 발생 -> Process는 Wait State Starvation = 식사하는 철학자 링크 DeadLock 발생 조건 4가지 모두 필수조건 1. Mutual Exclusion ( 상호 배제 ) Resource는 하나의 Process에서만 사용 할 수 있다. 2. Hold and wait ( 점유 대기 ) 최소한 하나의 Resource를 점유, ..
-
[OS] - CPU SchedulingCS/면접준비 2022. 9. 29. 18:34
CPU Scheduling Processor(CPU)가 Process를 적절하게 배정하여 사용률을 높이고 Overhead와 Starvation을 낮추기 위함 목표 1. Batch System : 가능하면 많은 일을 수행한다. (일을 한개씩 하는 것보다 100개씩 처리하는것이 좋다) 2. Interactive System : 빠른 응답 시간, 적은 대기 시간 3. Real-time System : Deadline Preemptive vs NonPreemtive Preemptive OS가 Cpu를 Process를 선점할 수 있는 경우 강제로 변경 가능하다. NonPreemptive Process Exit , I/O Event가 있을 때 까지는 Process의 실행을 보장하여 준다. Process State ..
-
[OS] - IPCCS/면접준비 2022. 9. 29. 17:22
IPC(Inter-Process-Communication) 독립적 구조를 가진 Process들 끼리 통신해야할 상황을 처리하여 준다. Process는 독립적으로 실행되기 때문에 다른 Process에게 영향을 받지 않는다. Kernel을 이용하여 IPC 설비를 이용해 통신 할 수 있다. Process간의 Data를 동기화 및 보호를 위하여 Semaphore와 mutex를 이용한다. ( 공유된 Resource에 하나의 프로세스만 접근 하는 경우 ) IPC 종류 1. 익명 Pipe Pipe는 2개의 Process를 연결하는데, 하나의 Process에서만 Write가 가능하고 하나의 Process에서는 Read만 가능하다 통신할 Process를 명확히 알 때 사용한다. ( Parent- Child ) 한쪽 방향..
-
[OS] - System call / PCBCS/면접준비 2022. 9. 29. 16:37
System call fork() Process create시 생성되며, Parent Process가 Child Process를 생성한다. exec() Process Create 이후에 사용 가능하며, Process를 실행할 수 있다. wait() Child Process가 실행될 때 까지 대기하는 상태로 Parent는 동작이 불가하다. Process Management 프로세스가 여러개일 때, CPU 스케줄링을 통해 관리하는 것을 말함 이때, CPU는 각 프로세스들이 누군지 알아야 관리가 가능함 프로세스들의 특징을 갖고있는 것이 바로 Process Metadata Process Metadata Process ID Process State Process Priority CPU Registers Owner..
-
[OS] - InterruptCS/면접준비 2022. 9. 29. 16:06
Interrupt Program이 실행 중에 예기치 않은 상황이 발생하였을 때 처리 하기 위함 상황 발생 -> 실행 중인 작업 중단 -> 발생된 상황 처리 지금 수행 중인 일보다 더 중요한 일이(I/O, 우선 순위 연산) 발생하면 해당 일을 먼저 처리해야 한다. Internal/External Interrupt는 CPU의 HW신호에 의해 발생한다. Software Interrupt는 명령어 수행에 의해 발생한다. External Interrupt I/O, Time Device, 전원 등의 외부적인 요인에 의해 발생하는 경우이다. Internal Interrupt Trap이라고 불리며, 잘못된 명령어 혹은 데이터 사용 시 발생 0으로 나누기, Overflow, 명령어 Exception Software In..
-
[OS] - Process vs ThreadCS/면접준비 2022. 9. 29. 15:23
Process Program을 Memory 상에서 실행 중인 작업 Process마다 최소 1개의 Thread가 존재한다. ( Main Thread ) Process는 각각의 Process마다 별도의 주소 공간을 할당한다. ( 독립적 ) Memory 1. Code 코드 자체를 구성하는 Memory 2. Data static , global , 배열 등 Init된 Data들은 Data Area ( static a = 10 ) Init되지 않은 Data들은 BSS Area ( static b ) global = life cycle = Program이 죽을 때 까지 / 다른 File에서 접근하여 사용 가능 static = life cycle = Program이 죽을 때 까지 / 다른 File 및 함수에서 접근하..
-
[Database] - JoinCS/면접준비 2022. 9. 21. 02:05
Join 두 개 이상의 테이블을 서로 연결하여 데이터를 검색할 때 사용하는 방법 RDBMS에서 서로 연결되어 있는 테이블들을 원하는 조건으로 조회하기 위한 방법 Inner Join 두 테이블의 교집합, 즉 두 테이블간 JOIN 조건을 만족하는 행을 반환한다. Left Outer Join 조인 조건에서 동일한 값이 없는 행도 반환할 때 사용한다. Right Outer Join OUTER JOIN이란 조인 조건에서 동일한 값이 없는 행도 반환할 때 사용한다. Full Outer Join LEFT OUTER JOIN과 RIGHT OUTER JOIN을 합친 것으로, 양쪽 모두 조건이 일치하지 않는 것들까지 모두 결합하여 출력한다. Cross Join Cartesian Product(카디션 곱)이라고도 하며 조인..
-
[Database] - KeyCS/면접준비 2022. 9. 20. 01:45
Key 키(Key)는 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 Attribute(속성)입니다. Candidate Key 튜플을 유일하게 식별할 수 있는 속성들의 부분집합을 의미합니다. 모든 릴레이션은 반드시 하나 이상의 후보키를 가져야합니다. Primary Key 기본키는 후보키 중에서 특별히 선정된 키로 중복된 값을 가질 수 없다.(Atomic) 유일성과 최소성을 가지며 튜플을 식별하기 위해 반드시 필요한 키이다. NULL 값이 있어서도 안된다. ( 무결성 ) Alternative Key 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키들을 말합니다. Super key 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족시키..