PCB(Process Control Block)
·
Computer Science/Operating System
PCB(Process Control Block)란?운영체제에서 관리할 필요가 있는 특정한 프로세스 정보를 포함하는 데이터 블록이다.커널 스택에 저장되며 각 프로세스가 생성될 때 고유의 PCB가 생성되고 프로세스가 종료되면 PCB는 제거된다.커널 스택 : 가상메모리는 사용자 공간과 커널 공간으로 구분되는데 이는 모두 스택 자료구조를 기반으로 관리된다, 때문에 사용자 스택, 커널 스택이라고도 한다. 사용자 스택은 유저모드에서만, 커널 스택은 커널모드에서만 접근 가능하다. 프로세스가 CPU를 점유하여 작업을 처리하다가, 상태가 전이되면 진행하던 작업 내용을 모두 정리하고 CPU에 반환해야 한다. 이때, 작업 내용을 PCB에 저장하여 후에 다시 CPU를 점유하여 작업을 수행해야할 때 PCB로부터 정보들을 알아내..
[프로그래머스/level 3] 등굣길 - 42898
·
코딩 테스트 정복기/프로그래머스
[level 3] 등굣길 - 42898문제 링크 성능 요약메모리: 53.2 MB, 시간: 1.31 ms구분코딩테스트 연습 > 동적계획법(Dynamic Programming)채점결과정확성: 50.0효율성: 50.0합계: 100.0 / 100.0제출 일자2024년 10월 17일 22:09:08문제 설명계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = 4, n = 3 인 경우입니다.가장 왼쪽 위, 즉 집이 있는 곳의 좌표는 (1, 1)로 나타내고 가장 오른쪽 아래, 즉 학교가 있는 곳의 좌표는 (m, n)으로 나타냅니다. 격자의 크기 m, n과 물이 잠긴 지역의 ..
[프로그래머스/level 3] 표 편집 - 81303
·
코딩 테스트 정복기/프로그래머스
[level 3] 표 편집 - 81303문제 링크 성능 요약메모리: 139 MB, 시간: 955.13 ms구분코딩테스트 연습 > 2021 카카오 채용연계형 인턴십채점결과정확성: 30.0효율성: 70.0합계: 100.0 / 100.0제출 일자2024년 10월 17일 20:42:13문제 설명[본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.]업무용 소프트웨어를 개발하는 니니즈웍스의 인턴인 앙몬드는 명령어 기반으로 표의 행을 선택, 삭제, 복구하는 프로그램을 작성하는 과제를 맡았습니다. 세부 요구 사항은 다음과 같습니다위 그림에서 파란색으로 칠해진 칸은 현재 선택된 행을 나타냅니다. 단, 한 번에 한 행만 선택할 수 있으며, 표의 범위(0행 ~ 마지막 행)를 벗어날 수 없습니다. 이때, 다음과 ..
[프로그래머스level 1] 크레인 인형뽑기 게임 - 64061
·
코딩 테스트 정복기/프로그래머스
[level 1] 크레인 인형뽑기 게임 - 64061문제 링크 성능 요약메모리: 65.9 MB, 시간: 2.39 ms구분코딩테스트 연습 > 2019 카카오 개발자 겨울 인턴십채점결과정확성: 100.0합계: 100.0 / 100.0제출 일자2024년 10월 16일 16:04:02문제 설명게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다."죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다.게임 화면은 "1 x 1" 크기의 칸들로 이루어진 "N x N" 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 "5 x 5" 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는..
[백준/Gold V] 적록색약 - 10026
·
코딩 테스트 정복기/백준
[Gold V] 적록색약 - 10026문제 링크 성능 요약메모리: 12448 KB, 시간: 68 ms분류너비 우선 탐색, 깊이 우선 탐색, 그래프 이론, 그래프 탐색제출 일자2024년 10월 16일 03:04:03문제 설명적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다.크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록), B(파랑) 중 하나를 색칠한 그림이 있다. 그림은 몇 개의 구역으로 나뉘어져 있는데, 구역은 같은 색으로 이루어져 있다. 또, 같은 색상이 상하좌우로 인접해 있는 경우에 두 글자는 같은 구역에 속한다. (색상의 차이를 거의 느끼지 못하는 경우도 같은 색상이라 한다)예를 들어, 그림이 아래와..
프로세스 메모리 구조, 프로세스/스레드 차이
·
Computer Science/Operating System
프로세스 메모리 구조프로세스 : 실행중인 프로그램의 작업 단위 Stack 영역지역변수, 매개변수, 함수가 저장되는 영역. 컴파일시 크기가 결정됨. 동적 할당 : 함수 호출 시 프레임을 할당하고, 함수 호출이 끝나면 해당 프레임을 해제하는 방식 LIFO(Last In, First Out) 방식으로 동작. 스택 오버플로우가 발생하지 않도록 주의! Heap 영역런타임에 할당된 객체나 배열 등 동적으로 할당된 메모리가 저장되는 영역. 동적 할당 : malloc, calloc, realloc 등의 함수로 메모리 할당이 이루어지며, free 함수로 메모리 해제 메모리 누수가 발생하지 않도록 주의! Data 영역BSS(Block Started By Symbol) 영역과 Data 영역으로 나뉘어져 있다.BSS(Bloc..
[백준/Gold V] AC - 5430
·
코딩 테스트 정복기/백준
[Gold V] AC - 5430문제 링크 성능 요약메모리: 100320 KB, 시간: 1008 ms분류덱, 파싱, 구현, 문자열, 자료 구조제출 일자2024년 10월 16일 02:21:09문제 설명선영이는 주말에 할 일이 없어서 새로운 언어 AC를 만들었다. AC는 정수 배열에 연산을 하기 위해 만든 언어이다. 이 언어에는 두 가지 함수 R(뒤집기)과 D(버리기)가 있다.함수 R은 배열에 있는 수의 순서를 뒤집는 함수이고, D는 첫 번째 수를 버리는 함수이다. 배열이 비어있는데 D를 사용한 경우에는 에러가 발생한다.함수는 조합해서 한 번에 사용할 수 있다. 예를 들어, "AB"는 A를 수행한 다음에 바로 이어서 B를 수행하는 함수이다. 예를 들어, "RDD"는 배열을 뒤집은 다음 처음 두 수를 버리는 ..
[프로그래머스/level 3] 단어 변환 - 43163
·
코딩 테스트 정복기/프로그래머스
[level 3] 단어 변환 - 43163문제 링크 성능 요약메모리: 72.2 MB, 시간: 0.26 ms구분코딩테스트 연습 > 깊이/너비 우선 탐색(DFS/BFS)채점결과정확성: 100.0합계: 100.0 / 100.0제출 일자2024년 10월 17일 22:55:37문제 설명두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다.1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다.2. words에 있는 단어로만 변환할 수 있습니다.예를 들어 begin이 "hit", target가 "cog", words가 ["hot","dot","dog","lot","log","cog"]라면 "..
[백준/Gold V] 토마토 - 7569
·
코딩 테스트 정복기/백준
[Gold V] 토마토 - 7569문제 링크 성능 요약메모리: 152236 KB, 시간: 844 ms분류너비 우선 탐색, 그래프 이론, 그래프 탐색제출 일자2024년 10월 16일 02:34:19문제 설명철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자모양 상자의 칸에 하나씩 넣은 다음, 상자들을 수직으로 쌓아 올려서 창고에 보관한다.창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토에 인접한 곳은 위, 아래, 왼쪽, 오른쪽, 앞, 뒤 여섯 방향에 있는 토마토를 의미한다. 대..