전체 글
-
[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 및 함수에서 접근하..
-
[프로그래머스] - 숫자 게임Algorithm/프로그래머스 2022. 9. 26. 18:29
문제 [프로그래머스] - 숫자 게임 https://school.programmers.co.kr/learn/courses/30/lessons/12987 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 이해 더보기 문제 설명 xx 회사의 2xN명의 사원들은 N명씩 두 팀으로 나눠 숫자 게임을 하려고 합니다. 두 개의 팀을 각각 A팀과 B팀이라고 하겠습니다. 숫자 게임의 규칙은 다음과 같습니다. 먼저 모든 사원이 무작위로 자연수를 하나씩 부여받습니다. 각 사원은 딱 한 번씩 경기를 합니다. 각 경기당 A팀에서 한 사원이, B팀에서 한 사원이 나와 서로의 수..
-
[Python] import vs runtime개발/Python 2022. 9. 26. 16:39
Python은 Hybrid 언어로 Interpreter를 이용한 Compile이 동작(import time)하고 난 뒤 Runtime이 동작하게 됩니다. import time import time 시 python 파일의 소스코드를 위에서부터 파싱 및 실행을 위한 Byte code를 만들어줍니다. 즉, 파일 내의 Function과 Class method를 제외한 코드들을 실행합니다. Interpreter 영역 runtime 모든 Code가 실행되는 순간 import time vs runtime 이 때 Import와 runtime에 대한 이해가 없다면, 에러를 마주 할 수 있습니다. 아래 코드에서 어떤 동작 결과가 예상하여 봅시다. #a.py import b def function_a(): print('fu..
-
[Python] - Requirements개발/Python 2022. 9. 26. 15:18
Dependency 다른 사용자들이 같은 코드를 돌리려고 하여도 각자의 Env가 다르기 때문에 Package Library들을 사용하기 위해서는 필수적인 Library들을 확인하고 설치하여 주어여한다. freeze 현재의 ENV의 설정 파일을 출력하여 준다. $ pip freeze #Output certifi==2022.6.15 charset-normalizer==2.1.0 idna==3.3 psutil==5.9.0 Pympler==1.0.1 requests==2.28.1 urllib3==1.26.9 list freeze가 가지고 있지 않은 편집할 수 있는 목록까지 보여준다. $ pip list #Output Package Version ------------------ --------- certifi ..
-
[Algorithm] - DFS를 통한 모든 경우의 수Algorithm/Algorithm 2022. 9. 24. 01:49
DFS 특정 Start를 기반으로 Node를 재귀로 타고 들어가 자신이 도착하는 경우의 수를 추출한다. 모든 경우의 수 구하기 아래 경우에서 Node 1에서 4로 가는 경우의 수를 탐색한다고 하여보자. DFS로 구현을 하게 된다면 일반적으로 1-2-3-4 탐색 후 끝나는 것이 일반적이지만, 우리는 모든 경우의 수를 구현해야 한다. 알고리즘 기존의 DFS코드를 활용한다. 이 때 나머지 경우에도 탐색을 해야하기 때문에 Visited edge값을 되돌려주고 임의의 값을 빼준다. 코드 n = 5 edges = [[1,2],[1,3],[2,3],[2,5],[3,4],[3,5],[5,4]] from collections import defaultdict def solution(n,edges): graphs = de..