본문 바로가기

728x90
반응형
SMALL

분류 전체보기

(195)
CPU 스케쥴링 CPU 스케쥴링 CPU스케쥴링은 운영체제가 프로세스가 공정하고 합리적으로 CPU 자원을 배분하는 것 입니다. 입출력 집중 프로세스 입출력 집중 프로세스는 대부분의 실행 시간을 입출력 작업에 사용하는 프로세스를 의미합니다. 이러한 프로세스는 파일을 읽거나 쓰는 작업, 네트워크 연결을 설정하는 작업, 디스크에서 데이터를 검색하는 작업 등 입출력 작업이 많은 작업을 수행합니다. 이러한 프로세스는 입출력이 완료될 때까지 대기해야 하는 경우가 많기 때문에 CPU를 많이 사용하지 않습니다. CPU 집중 프로세스 CPU 집중 프로세스는 대부분의 실행 시간을 CPU 작업에 사용하는 프로세스를 의미합니다. 이러한 프로세스는 계산이 많은 작업을 수행하거나, 정렬, 검색, 해시 테이블 작업 등의 연산이 많은 작업을 수행합니..
프로세스 동기화 동기화란? 동기화를 쉽게 말하면 하나의 기준에 두 가지 이상의 것들이 서로 맞춰지거나 일치되는 상태를 말합니다. 따라서 시계를 맞추거나 노래를 부를 때, 음을 맞추고 리듬을 맞추는 것 또한 동기화의 일종 입니다. 그렇다면 컴퓨터 분야에서 동기화란? 여러 개의 스레드나 프로세스가 동시에 공유 자원에 접근하는 경우, 문제가 발생하지 않도록 하는 작업입니다. 동기화를 통해 공유 자원에 대한 접근을 제어하면서, 경쟁 상태(Race Condition)와 데드락(Deadlock) 같은 문제를 예방할 수 있습니다. 대표적인 동기화 기법으로는 뮤텍스(Mutex), 세마포어(Semaphore), 모니터(Monitor)가 있습니다. 크게 프로세스 동기화는 실행 순서 제어를 위한 동기화, 상호배제를 위한 동기화로 나뉩니다...
프로세스와 스레드 프로세스 개요 프로그램이 메모리에 적재되고 실행되는 순간, 프로그램은 프로세스가 됩니다. Mac용 활성 상태 보기 앱을 통해서 확인이 가능하고 맥 또한 유닉스 기반으로 한 운영체제이기 때문에, 터미널에서 ps -e명령으를 통해서도 가능합니다 :) 프로세스에 따라 사용자가 보는 앞에서 실행되면 포어그라운드 프로세스, 그렇지 않으면 백그라운드 프로세스라 부르며, 사용자와 상호작용하지 않고 정해진 일만 수행하는 백그라운드 프로세스를 데몬이라 합니다. 프로세스 제어블록 프로세스 제어 블록(Process Control Block, PCB)은 운영체제가 각 프로세스를 관리하기 위해 유지하는 정보의 모음입니다. PCB는 각 프로세스에 대한 정보를 저장하고, 프로세스 스케줄링, 메모리 관리, 입출력 등의 작업을 수행할..
운영체제 시작하기 운영체제란? 운영체제(Operating System, OS)는 컴퓨터 하드웨어와 응용 프로그램 간의 인터페이스 역할을 하며, 시스템 자원(프로세서, 메모리, 저장장치, 입출력장치 등)을 효율적으로 관리하고, 응용 프로그램의 실행을 지원하는 소프트웨어 시스템입니다. 컴퓨터가 부팅될 때 메모리 내 커널 영역에 따로 적재되어 실행되며, 커널 영역을 제한 나머지 영역을 사용자 영역이라고 합니다. 운영체제를 알아야하는 이유? 컴퓨터 시스템 이해 컴퓨터 시스템을 이해하려면 운영체제의 기능과 동작 방식을 이해해야 합니다. 운영체제는 컴퓨터 시스템의 핵심적인 요소 중 하나이기 때문에, 운영체제를 이해하지 않으면 컴퓨터 시스템의 동작 원리를 제대로 이해할 수 없습니다. 프로그래밍 운영체제는 응용 프로그램과 하드웨어 간의..
자율 주행 자동차 방향 때문에 머리가 아팠지만 특별한 부분은 없이 시키는데로 구현만 잘하면 됐던 문제였습니다. :) import sys answer = 0 n, m = map(int, sys.stdin.readline().strip().split()) y, x, d = map(int, sys.stdin.readline().strip().split()) dy, dx = [-1, 0, 1, 0], [0, 1, 0, -1] graph = [list(map(int, sys.stdin.readline().strip().split())) for _ in range(n)] visited = [[False for _ in range(m)] for _ in range(n)] check_count = 0 visited[y][x] = Tru..
방화벽 설치하기 아주 예전에 친구들과 1일 1문제 했을 때 풀었던 문제. 위치값 저장해서 방화벽 놓을 수 있는 모든 경우의 수에 불이 퍼지게 해서 최소값만 리턴하면 끝남. import sys import copy from itertools import combinations from collections import deque maxCount = 0 copyGraph = [] def bfs(x, y, n , m): global copyGraph dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] queue = deque() queue.append((x, y)) while queue: x, y = queue.popleft() for z in range(4): nx = x + dx[z] ny = y + dy..
외주 수익 최대화하기 단순 DP 문제였습니다. 바로 직전 문제에서 chatGPT 에게 try, except 로 뚜드려 맞아서 쉽게 풀었습니다. :) import sys n = int(sys.stdin.readline()) dp = [0 for _ in range(n + 1)] works = [list(map(int, sys.stdin.readline().strip().split())) for _ in range(n)] for i in range(len(works)): dp[i] = max(dp[i], dp[i - 1]) try: dp[i + works[i][0]] = max(works[i][1] + dp[i], dp[i + works[i][0]] ) except: pass print(max(dp))
14500 - 테트로미노 뇌 빼고 모든 케이스를 전부 검사해서 풀었습니다... 전 왜 이럴까요... chatGPT 최고... 모든 모양의 경우의 수의 모양을 만든 다음;; try, except로 인덱스 넘어가는 부분을 넘기고 최고합을 출력하라고... 진짜 천재인듯... 다음에는 그렇게 풀어보겠슴다.. N,M = map(int, input().split()) list_1 =[] for i in range(N): tmp_list = list(map(int,input().split())) list_1.append(tmp_list) list_2 = list(map(list, zip(*list_1))) #가로, 세로 전환 t1 = [] for j in range(1,len(list_1)): #정사각형 for j2 in range(1,le..

728x90
반응형
LIST