본문 바로가기

728x90

공부의 기록

(21)
[운영 체제] 문맥 교환(Context Switching) ⬛ 문맥 교환(Context Switching) 실행중인 프로세스가 다른 프로세스에게 프로세서를 넘겨주는 과정 실행중인 프로세스의 context를 저장하고, 프로세서를 넘겨줄 프로세스의 context를 복구하는 일 프로세스에게 할당된 프로세서 사용 시간이 끝나거나 입출력 등을 해야할 때, 실행 중인 프로세스보다 우선 순위가 더 높은 프로세스가 프로세서를 요청할 때 인터럽트를 발생시켜 문맥 교환이 진행된다. Context Switching은 오버헤드를 발생시킨다. ◼ Context 프로세스를 실행시키기 위해 PCB에 저장되어 있는 프로세스와 관련된 정보들 ◼ Context Saving 실행중이였던 프로세스의 Context(레지스터 값)를 자신의 PCB에 저장 ◼ Context Restoring 예전에 PC..
[운영 체제] 프로세스와 프로세스의 상태 ⬛ Process 프로그램이 메모리를 할당받으면 프로세스가 된다. → 프로세스는 실행 중인 프로그램을 의미 ⬛ Process Control Block(PCB) 프로세스가 생성되는 동시에 생성되며 각 프로세스들에 대한 정보를 저장하여 프로세스들을 관리하는 자료 구조 각 프로세스에 대한 PCB는 커널 공간에 존재한다. PCB가 관리하는 정보들 PID(Process Identification Number) : 프로세스 고유 식별 번호 스케줄링 정보 : 프로세스 우선 순위 등 프로세스 상태 : 생성, 준비, 실행, 대기, 완료 상태 메모리 관리 정보 : 프로세스의 주소 공간 등 입출력 상태 정보 : 프로세스에 할당된 입출력 장치, 파일 등에 대한 정보 등 문맥 저장 영역(context save area) : 프..
[운영 체제] 메모리란? 데이터를 저장하는 장치 ⬛ 메모리의 종류 ⬛ 레지스터 프로세서 내부에 있는 메모리로 명령을 빠르게 수행한다. 프로그램 카운터(Program Counter) : 다음에 수행될 명령어의 주소를 보관하는 레지스터 명령어 레지스터(Instruction Register) : 현재 실행중인 명령어를 보관하는 레지스터 누산기( ACCummulator) : 연산결과인 데이터를 일시적으로 저장하는 레지스터 이외에도 데이터 레지스터, 주소 레지스터, 메모리 주소 레지스터, 메모리 버퍼 레지스터가 있다. ⬛ 주기억 장치(Main Memory) CPU가 직접 접근할 수 있는 기억 장치로 프로세서가 수행할 프로그램과 데이터를 저장 CPU와 보조기억 장치와의 속도 차이로 인한 디스크 입출력 병목현상을 해소하기 위해 사용된다. ⬛..
[자료 구조] Tree & Binary Tree의 개념 설명 ⬛ Tree의 개념 원소들 간에 1 : n 관계, 계층 관계를 가지는 자료 구조 노드(Node)와 간선(Edge)으로 이루어진 자료구조 데이터를 순차적으로 저장하지 않기 때문에 비선형 자료 구조 Loop를 갖지 않는다. ⬛ Tree의 용어 노드(Node) : 트리의 기본 원소 간선(Edge) : 노드와 노드를 연결하는 선, 부모 노드와 자식 노드는 간선으로 연결되어 있다. 루트 노드(Root Node) : 트리의 시작 노드로 부모 노드가 없는 최상위 노드 부모 노드(Parent Node) : 자식 노드를 가진 노드 자식 노드(Child Node) : 부모 노드의 하위 노드 형제 노드(Sibling Node) : 같은 부모를 가지는 자식 노드들 서브 트리(Sub-tree) : 부모 노드와의 연결을 끊었을 ..
[Boj] 2464. 비밀번호 - java ⬛ 2464. 비밀번호 https://www.acmicpc.net/problem/2464 2464번: 비밀번호 주어진 수 보다 작은 수 중에서 이진수의 1의 개수가 같으며 가장 가까운 수와, 주어진 수 보다 큰 수 중에서 이진수의 1의 개수가 같으며 가장 가까운 수를 한 줄에 빈칸을 사이에 두고 출력한다 www.acmicpc.net ⬛ 풀이 방법 1의 개수가 같으면서 가장 가까운 작은 수와 가장 가까운 큰 수를 찾기 입력받은 수를 이진수 리스트로 저장 (43 = 101011(2), list = [1, 1, 0, 1, 0, 1, 0]) 해당 수보다 더 작은 수를 찾기 위해서는 리스트를 인덱스 0부터 돌며 01이 되는 부분 찾아서 10로 swap ( [1, 1, 0, 1, 0, 1, 0] -> [1, 1, ..
[SWEA] 1210. [S/W 문제해결 기본] 2일차 - Ladder1 - java ⬛ 1210. [S/W 문제해결 기본] 2일차 - Ladder1 - java https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14ABYKADACFAYh SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com ⬛ 풀이 방법 0으로 채워진 평면상에 사다리는 연속된 1로 표현되고, 도착 지점은 2로 표현된다. -> 2에서부터 거꾸로 올라가는 방법을 사용 현재 위치에서 왼쪽 또는 오른쪽에 1로 채워진 곳이 있다면 왼쪽 또는 오른쪽으로 이동 현재 위치에서 왼쪽 또는 오른쪽에 1로 채워진 곳이 없다면 위로 이동 맨 위에 도착할 때까지 반..
[자료 구조] Hash의 개념 설명 매핑 : 하나의 값을 다른 값으로 대응시키는 것 해시 함수란 데이터를 효율적으로 관리하기 위해서 임의의 길이의 데이터(Key)를 고정된 길이의 데이터(Hash)로 매핑 ⬛ Hash Table 해시 테이블은 내부적으로 배열을 사용하여 저장하기 때문에 빠른 검색 속도를 가진다. 이때의 배열을 bucket이라고 한다. (key, value)를 저장하는 자료구조로 해시함수를 이용하여 key를 해시값으로 매핑하고, 이 해시값을 value를 저장하기 위한 인덱스로 사용 해시 테이블을 이용하여 데이터를 저장하면 key로 value를 찾을 때 해시 함수를 수행하여 value가 있는 위치를 찾을 수 있기 때문에 저장/삭제/조회 과정에서 모두 평균적으로 O(1)의 시간 복잡도를 가진다 전체 데이터의 양이 16이라고 하면 ..
[SWEA] 1954. 달팽이 숫자 - java ⬛ 1954. 달팽이 숫자 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PobmqAPoDFAUq& SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com ⬛ 풀이 방법 배열이 채워지는 순서가 우->하->좌->상으로 반복 배열의 끝을 만나거나 이미 채워진 부분을 만났을 때 방향이 바뀐다. 채워지는 수인 num이 배열의 크기가 되었을 때까지 반복 ⬛ 소스 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; ..

728x90