728x90

Total

728x90

    [Process & Thread] 프로세스간 통신(IPC, 공유메모리, 메시지전달)

    1. IPC 1) IPC ⭐️ Inter Process Communication 프로세스는 독립적인 주소 공간을 가지고 있어서 다른 프로세스와 데이터를 주고 받을 수 없는데 이런 문제를 해결하기 위한 기법 IPC를 통해 프로세스간 통신이 가능하게 만들어줌 IPC는 크게 공유 메모리 방식과 메시지 전달 방식으로 나눠짐 2. 공유 메모리 1) 공유 메모리 프로세스들이 주소 공간의 일부를 공유하고 공유된 메모리 영역에 읽기와 쓰기를 하면서 통신하는 방식 프로세스가 공유 메모리 할당을 커널에 요청하면 커널은 해당 프로세스에 메모리 공간을 할당해줌 메모리는 스택-힙-데이터-코드영역으로 이루어져있지만 공유 메모리를 할당 받으면 스택-힙-데이터-공유메모리-코드 이렇게 메모리 공간에 공유 메모리 공간이 추가가 됨 2)..

    [Process & Thread] 스레드, 멀티 스레드

    1. 스레드 1) 스레드 하나의 프로세스 내에서 실행되는 동작의 단위 각 스레드는 프로세스의 스택 메모리를 제외한 나머지영역인 코드, 데이터, 힙 영역을 공유 프로세스 내에서 독립적인 기능을 수행하며 이는 독립적인 함수를 호출함을 의미하며 따라서 스택메모리가 별도로 필요 스택 메모리가 별도로 필요하다면 스레드 별로 실행되고 있는 명령어의 위치 또한 다르므로 PC 레지스터도 각각 필요 2) 독립적인 스택 메모리 함수를 호출하기 위해서 인자 전달, Return Address와 함수 내 지역변수 저장 등을 위한 독립적인 스택 메모리 공간 필요 프로세스로부터 Stack memory 영역은 독립적으로 할당받고, Code, Data, Heap 영역은 공유 3) PC Register 멀티 쓰레드에서는 각각의 쓰레드마..

    [Process & Thread] 프로세스, 멀티 프로세스

    1. 프로세스 1) 프로세스 프로그램이 메모리에 적재되어 운영체제로부터 CPU를 할당받아 실행되는 것을 프로세스라고 한다. 프로그램에 CPU에서 실행 되려면 메모리에 적재된 상태여야만 한다. 2) 프로세스의 구조 Code : 프로그램에 내장되어 있느 소스코드 들어가는 영역, 실행한 코드 저장, 정적 Data : 전역변수, static 변수 저장, BSS 영역과 Data 영역, 정적 Heap : 동적 메모리 저장, 런타임 시 크기 결정, 직접 할당, 해제, 동적 Stack : 지역변수, 매개변수, 함수 저장, 컴파일 시 크기가 결정, 동적 3) CPU 할당 받은 프로세스의 실행과정 Notion을 아직 실행하지 않은 상태이다. 프로그램 Notion을 더블 클릭하여 활성화 시킨다. 프로세스 Notion이 메모..

    [13251] 조약돌 꺼내기

    13251번: 조약돌 꺼내기 첫째 줄에 뽑은 조약돌이 모두 같은 색일 확률을 출력한다. 정답과의 절대/상대 오차는 10-9까지 허용한다. www.acmicpc.net 풀이 1. 색깔별 조약돌의 개수에서 k를 뽑을 수 잇는 경우의수 / 전체 돌에 관해 k개를 뽑는 경우의 수 import sys input=sys.stdin.readline import math m = int(input()) # 색 종류개수 arr = list(map(int,input().split())) # 색깔별 조약돌 개수 k = int(sys.stdin.readline()) # 뽑을 개수 t = sum(arr) # 전체 조약돌 개수 total = math.comb(t, k) # 전체 돌에 관해 k개를 뽑는 경우의 수 same_color..

    [1010] 다리 놓기

    1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net 분석 서쪽N ≤ 동쪽 M 다리끼리 서로 겹쳐질 수 없다 ➔ 동쪽에서 N개를 선택한 후 가장 위쪽 사이트에서부터 차례대로 연결 M개의 사이트에서 N개를 선택하는 문제로 변경 풀이 """ 강의 서쪽에는 N개의 사이트가 있고 동쪽에는 M개의 사이트가 있다는 것을 알았다. (N ≤ M) 원이는 다리를 최대한 많이 지으려고 하기 때문에 서쪽의 사이트 개수만큼 (N개) 다리를 지으려고 한다. 다리끼리는 서로 겹쳐질 수 없다고 할 때 다리를 지을 수 있는 경우의 수 입력의 ..

    [2775] 부녀회장이 될테야

    2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net """ a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다. 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k(1 ≤ k), 두 번째 줄에 정수 n(n ≤ 14) """ import sys input=sys.stdin.readline d=[[0 for j in range(15)] for i in ra..

    사다리 타기 (DFS)

    """ 다리 표현은 2차원 평면은 0으 로 채워지고, 사다리는 1로 표현합니다 현수는 특정도착지점으로 도착하기 위해서는 몇 번째 열에서 출발해야 하는지 알고싶습니다. 특정 도착지점은 2로 표기됩니다 특정목적지인 2에 도착하려면 7번 열 출발지에서 출발하면 됩니다. 10*10의 사다리 지도가 주어집니다. 1 0 1 0 0 1 0 1 0 1 1 0 1 1 1 1 0 1 0 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 1 1 1 0 1 0 1 1 0 1 0 0 1 0 1 1 1 1 1 1 0 0 1 0 1 0 1 1 0 1 0 0 1 1 1 0 1 1 0 1 0 0 2 0 1 0 1 출발지 열 번호를 출력 """ import sys ..

    [7576] 토마토 (BFS)

    7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net """ 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토의 인접한 곳은 왼쪽, 오른쪽, 앞, 뒤 네 방향 에 있는 토마토를 의미한다. 대각선 방향에 있는 토마토들에게는 영향을 주지 못하며, 토마토가 혼자 저절로 익는 경우는 없다고 가정한다. 현수는 창고에 보관된 토마토들이 며칠이 지나 면 다 익게 되는지, 그 최소 일수를 알고 싶어 한다. 첫 줄에는 상자의 크기를..