분류 전체보기 720

[OS] 리눅스의 메모리 관리

10분 테코톡 시청 후 작성했습니다. https://www.youtube.com/watch?v=qxmdX449z1U 리눅스란? 리누스 토르발스가 개발한 OS 자유 소프트웨어와 오픈 소스 개발의 표본 다중 사용자, 다중 작업(멀티 테스킹), 다중 스레드를 지원하는 네트워크 운영 체제(NOS) 즉 서버에 적합한 운영체제이다. 메모리란? 넓은 의미로 기억 장치 전부 좁은 의미로 메인 메모리(RAM) 컴퓨터의 유일한 작업공간.(프로세스는 cpu에서 실행x 반드시 메모리에 적재 후 실행 가능) 주소덩어리이며 주소로 인덱싱하는 커다란 배열. 컴퓨터가 켜지면 메모리에 운영체제나 프로세스들이 적재되고 CPU를 점유할 기회를 노림. 메모리의 코드 -> 컴파일러(코드 주소 결정) -> CPU Symbolic Address..

[OS] 가상 메모리(Virtual Memory)와 페이징

가상메모리(VM != Virtual Machine) 다중 프로그래밍 = 많은 프로세스를 동시에 메모리에 올려야함. 프로세스 전체가 메모리에 올라오지 않더라도 실행이 가능하도록 하는 기법. 물리 메모리보다 프로그램이 커도 된다. 메모리 오버레이 기법에서 나머지를 관리하기 위한 공간 보통 SSD로 C드라이브가 아닌 D드라이브 등에 가상메모리를 설정하는게 좋음. 만약 C가 SSD고 D가 HDD면 그냥 C에 설정. 윈도우 가상메모리 파일 이름은 pagefile.sys 개발 배경 가상메모리 이전 : 모든 코드는 물리메모리에 존재. 메모리 용량보다 큰 프로그램 실행 불가. 용량의 한계, 페이지 교체 등 성능이슈. 가끔 사용하는 코드가 항상 메모리에 올라올 필요 x 가상 메모리를 사용하면? 물리 메모리 크기에 제약 ..

[programmers][Python] 2021 kakao blind 메뉴 리뉴얼

sets에 조합 출현 갯수 cnt ans_set에 2번이상이고 최고 많이 나온 comb 입력 answer에 ans_set에 들어간 comb만 추출 후 정렬 반환 from collections import defaultdict from itertools import combinations def solution(orders, course): answer = [] sets = defaultdict(int) for order in orders: order = sorted(list(order)) for num in course: for new_comb in combinations(order, num): sets[''.join(list(new_comb))] += 1 ans_set = {num: [] for num..

[programmers][Python] 2021 kakao blind 신규아이디 추천

규칙에 따라 parsing def solution(new_id): answer = '' for char in new_id: if char.isalpha(): answer += char.lower() elif char == '.' and answer and answer[-1] != '.': answer += '.' elif char.isdigit() or char in '-_': answer += char if not answer: answer += 'a' elif len(answer) > 15: answer = answer[:15] if answer[-1] == '.': answer = answer[:-1] while len(answer) < 3: answer = answer + answer[-1] re..

[백준][Python] 20168 골목대장 호석

그냥 다익스트라 한번으로는 안된다. 최대한계값을 정해주고 돌려야한다. 최대한계값은 이분탐색으로 찾는다., import heapq import sys input = sys.stdin.readline def dijkstra(mid): dist = [float('inf')] * (N + 1) dist[start] = 0 H = [(0, start)] while H: dist, cur_node = heapq.heappop(H) if dist[cur_node] mid: continue if dist[next_node] > dist + cost: dist[next_node] = dist + cos..

[백준][Python] 2469 사다리 타기

위에서 start배열 swap 아래서부터 받아온 last 배열 swap 후 비교해주며 *, - 더해주기 import sys input = sys.stdin.readline k, n = int(input()), int(input()) start = [] for i in range(k): start.append(chr(ord('A') + i)) last = list(input().rstrip()) ladder_game = [list(input().rstrip()) for _ in range(n)] flag = 0 for row in range(n): if flag: break for col in range(k - 1): if ladder_game[row][col] == '-': start[col], star..