반응형

전체 글 286

[OS] 프로세스 간 통신 (IPC)

개요 실행중인 프로세스가 다른 실행중인 프로세스들과 데이터를 공유하지 않는다면 그 프로세스는 독립적인 프로세스이고, 다른 프로세들에 영향을 주거나 받는다면 협력적인 프로세스이다. 협력적인 프로세스들은 데이터를 교환할 수 있어야 하므로 프로세스 간 통신 기법(InterProcess Communication, IPC)가 필요하다. 프로세스 간 통신에는 공유 메모리와 메시지 전달의 두 가지 모델이 있다. 공유 메모리 방식 협력 프로세스들에 의해 공유되는 메모리 영역이 구축된다. 프로세스들은 영역 안에 데이터를 읽고 쓰면서 정보를 교환한다. 공유 메모리 영역은 공유 메모리 세그먼트를 생성하는 프로세스의 주소 공간에 위치한다. 통신하고자 하는 다른 프로세스들은 세그먼트를 자신의 주소 공간에 추가해야 한다. 그런 ..

CS/OS 2022.08.04

[OS] 프로세스

개요 디스크에 있는 데이터 파일을 프로그램이라고 하고, 메모리에 올라와 실행 중인 프로그램을 프로세스라고 한다. 프로세스는 현대 컴퓨팅 시스템에서 작업의 단위를 뜻한다. 프로세스 메모리 배치 Text(Code) 영역 : 실행 코드가 저장된다. Data 영역 : 전역 변수들이 저장된다. Heap 영역 : 프로그램 실행 중에 동적으로 할당되는 메모리이다. Stack 영역 : 함수를 호출할 때 데이터(함수 매개변수, 복귀 주소 및 지역 변수)를 임시로 저장하는 메모리이다. Text, Data 영역의 크기는 고정되어 있어 프로그램 실행 시간 동안 크기가 변하지 않는다. Heap, Stack 영역은 프로그램 실행 중에 동적으로 줄어들거나 커질 수 있다. 운영체제는 Stack과 Heap 영역이 서로 겹치지 않도록 ..

CS/OS 2022.08.02

[OS] 시스템 프로그램

개요 프로그램은 응용 프로그램과 시스템 프로그램으로 나눌 수 있다. 시스템 프로그램은 응용 프로그램을 실행하기 위한 플랫폼을 제공하고, 컴퓨터 하드웨어를 동작, 접근할 수 있게 해 준다. 사용자의 문제를 직접 해결하는 응용 프로그램과는 반대의 개념을 가지고 있다. 시스템 서비스, 시스템 유틸리티라고도 한다. 역할 시스템 프로그램의 역할은 다음과 같다. 파일 관리 파일과 디렉토리를 생성, 삭제, 복사, 개명(Rename), 인쇄, 조작한다. 상태 정보 날짜, 시간, 사용 가능한 메모리, 디스크 공간의 양, 사용자 수 등등의 상태 정보를 제공한다. 파일 변경 디스크나 다른 저장 장치에 저장된 파일의 내용을 생성하고 변경한다. 프로그래밍 언어 지원 컴파일러, 어셈블러, 디버거 및 인터프리터 등을 제공한다. 프..

CS/OS 2022.08.01

[컴퓨터 구조] SMP와 NUMA

개요 Mutilprocessor System의 종류 중 하나인 SMP와 NUMA에 대해 서술한다. 먼저, 컴퓨터 시스템 구성요소의 용어 정의를 할 필요가 있다. CPU : 명령을 실행하는 하드웨어 프로세서(processor) : 하나 이상의 CPU를 포함하는 물리적 칩 코어(core) : CPU의 기본 계산 단위 다중 코어 : 동일한 CPU에 여러 컴퓨팅 코어를 포함하는 것 다중 처리기(multiprocessor) : 프로세서가 여러 개 있는 것 SMP(Symmetric multiprocessing) 두 개 이상의 프로세서가 한 개의 공유된 메모리를 사용하는 다중 프로세서 컴퓨터 아키텍처이다. 각 프로세서에 개별 레지스터, 또는 캐시가 존재한다. 메인 메모리는 시스템 버스를 통해 공유한다. 한 번의 한 ..

CS/컴퓨터 구조 2022.07.30

[방탈출] 퀘스천 마크 후기

테마 정보 보편화되고 상용화되어 있는 기존의 방탈출에서 새롭게 변화된 방탈출을 만들어 보고 싶었습니다. '탈출러에게 조금 더 변화된 조금 더 다른 방탈출을 느끼게 할 수 없을까?' 라는 물음에서 시작해 퀘스천마크를 만들게 되었습니다. 모든 것이 의문투성이 물음표인 테마 https://question-mark.co.kr/layout/res/home.php?go=main 퀘스쳔마크 장르도 물음표??? 난이도도 물음표??? 스토리역시 물음표??? 예측불가의 신개념 프리미엄 방탈출 홍대점 question-mark.co.kr 정보(매장) 난이도 ??? 공포도 0/5 플레이 타임 : 75분 3인, 4 Hint, 02:54 Left 난이도 3/5 플레이 타임이 75분이지만, 볼륨이 있어서 시간이 꽤나 빡빡한 편이다...

방탈출 2022.07.27

[게임 리뷰] 언더테일

언더테일은 스포일러가 정말 치명적인 게임이다. 아직 엔딩을 보지 않았다면 이 글을 포함한 다른 리뷰들을 보지 않고 게임을 플레이를 먼저 하는 것을 강력하게 권장한다. 전체적인 게임 진행 방식은 포켓몬 시리즈에 탄막 슈팅을 추가한 것 같다. 월드를 탐험하면서 다양한 인터랙션을 경험을 하면서 플레이어는 성장해 나간다. 괴물들과의 전투는 전형적인 JRPG 턴제 방식이다. 공격으로 Hp를 감소시켜 전투에서 승리할수도 있고, 도망가거나 괴물마다 각기 다른 특정 행동을 취한 뒤 자비를 베풀 수도 있다. 게임을 진행하면서 플레이어는 다양한 지하세계 괴물들을 만나게 된다. 프로그 같은 일반 잡몹들 부터 토리엘과 샌즈, 파피루스 등 보스몹들까지 다양한 등장인물이 등장한다. 플레이어는 이들을 죽일 수도 있고, 각각의 알맞..

게임/PC 2022.07.26

[백준 2665] 미로만들기 C++

문제 백준 2665 미로만들기 C++ 2665번: 미로만들기 첫 줄에는 한 줄에 들어가는 방의 수 n(1 ≤ n ≤ 50)이 주어지고, 다음 n개의 줄의 각 줄마다 0과 1이 이루어진 길이가 n인 수열이 주어진다. 0은 검은 방, 1은 흰 방을 나타낸다. www.acmicpc.net 풀이 두가지 방법으로 풀었다. 첫 번째 방법 1. cnt만큼 벽을 뚫을 수 있게 설정해준다. 2. BFS() 함수를 실행하여 최대 cnt만큼 벽을 뚫으면서 도착지점에 도달할 수 있는지 없는지 확인한다. 3-1. 도착할 수 있다면 true를 return 하고 현재 cnt를 출력한다. 3-2. 도착할 수 없다면 cnt를 1증가시키고 다시 BFS() 함수를 실행한다. 방문 체크를 3차원 배열로 했는데 (y좌표, x좌표, cnt :..

알고리즘/백준 2022.07.24

[C++] Inline 함수

개요 일반적으로 함수가 호출되면, 함수에 전달할 매개변수와 함수 호출이 끝난 뒤 돌아갈 반환 주소값을 스택에 저장하게 된다. 그 후에 프로그램 제어가 함수의 위치로 넘어오고, 함수 내에 선언된 지역 변수도 스택에 저장한다. C++에서 함수를 호출하면 위와 같은 복잡한 과정을 거치게 되므로, 함수를 호출하는데에 약간의 시간이 소요된다. 함수 실행 시간이 길다면 함수 호출 시간이 차지하는 부분이 미미하지만, 함수 실행 시간이 짧다면 함수 호출 시간이 함수 실행 시간보다 더 길어지는 배보다 배꼽이 큰 상황이 발생할 수 있다. C++에서는 이러한 경우에 사용할 수 있는 인라인 함수(Inline function)을 제공한다. 인라인 함수는 호출되었을 때 일반적인 함수 호출의 과정을 거치지 않고, 인라인 함수의 모..

언어/C++ 2022.07.19

[방탈출] 오늘, 나는 후기

테마 정보 잠에서 깨고 나면, 오늘도 나는 새로운 사람이 되어 하루를 살아간다. https://www.xphobia.net/quest/quest_view.php?qr_id=1547046775 방탈출카페 비트포비아 탈출의 경계를 무너뜨리다, 비트포비아! 방탈출부터 어메이징 던전까지 다양한 어드벤처를 경험해보세요! www.xphobia.net 정보(매장) 난이도 3 / 4 공포도 0 / 5 플레이 타임 : 60분 3인, 4 Hint, 00:39 Left 난이도 2 / 5 전반적으로 쉽고 기출문제가 많은 편이지만, 몇몇 문제는 난이도가 꽤 있다. 진행하다가 3~5분 이상 막힌다면, 힌트를 사용하는 것을 권장한다. 시간제한이 60분이지만 볼륨이 꽤 있기에 시간 압박이 꽤 있다. 초보자들끼리 천천히 진행하다가는 ..

방탈출 2022.07.17
반응형