728x90
반응형

2024/06 6

[Baekjoon 2503 / Python / 실버3] 숫자 야구

import sysimport itertoolsinput = sys.stdin.readline# 질문 횟수N = int(input())# 숫자, 스트라이크, 볼q = []for i in range(N):    q.append(list(map(int, input().split())))num = [i for i in range(1, 10)]numbers = list(itertools.permutations(num, 3))# 결과 저장할 변수result = 0# 생성된 모든 숫자에 대해서 반복for i in numbers:        # 숫자 하나하나에 대해, 모든 질문에 대한 조건 검사    for j in range(len(q)):        strike = 0        ball = 0       ..

[Baekjoon 5427 / Java / 골드4] 불

BFS 문제이다. 불이 1초마다 상하좌우로 1칸씩 퍼지고, 상근이는 1초마다 상하좌우로 1칸씩 이동할 수 있다.건물 끝 4방향의 '.' 빈 공간에 다다르면 탈출에 성공하게 된다. 상근이의 빌딩 탈출에 걸리는 시간을 출력하고, 탈출할 수 없다면 IMPOSSIBLE을 출력하면 된다. import java.io.*;import java.util.*;public class 불_5427 {    static int N; // 테스트 케이스 개수    static int[] dx = {-1, 1, 0, 0};    static int[] dy = {0, 0, -1, 1};    static char[][] tower;    static int[][] visited;    static int w, h;    publ..

Algorithm/BFS 2024.06.08

PintOS 프로젝트 3주차 중간 정리와 의문점들 ( TLB, Belady's Anomaly, Thrashing, Dirty Page, Supplemental Page Table )

페이지 테이블 접근 시 TLB가 어떻게 페이지 테이블의 성능을 향상시키는가?- TLB는 자주 사용되는 주소 변환 정보를 빠르게 참조할 수 있도록 하는 "캐시 메모리" 이다.- TLB에 원하는 주소 변환 정보가 있으면, 페이지 테이블을 참조하지 않고 바로 물리적 주소를 얻을 수 있어 성능이 향상된다. TLB Miss일 때 시스템은 어떤 과정을 거쳐 메모리에 접근하는가?- TML Miss일 때 시스템은 페이지 테이블을 조회하여 물리적 주소를 찾은 후, 추후 빠르게 접근할 수 있도록 정보를 TLB에 업데이트한다.   Belady의 역설(Belady's Anomaly)- 페이징 기법을 사용하는 메모리 관리 시스템에서, 프레임 수를 늘리는데도 page fault가 발생하는 빈도가 늘어나는 현상 Belady의 역설..

PintOS 프로젝트 3주차 키워드 정리 ( Virtual Memory, Page Table, TLB, Page Fault, Lazy Loading, PRP, DMA )

Virtual Memory물리적 메모리(RAM)의 제한을 극복하고 효율적인 메모리 관리 및 프로세스 격리를 위해 사용되는 중요한 개념 Virtual Memory 개념- 각 프로세스는 독립적인 가상 주소 공간을 갖는다. 이는 프로세스가 자신의 메모리 공간을 다른 프로세스와 공유하지 않고, 독립적으로 사용할 수 있도록 한다.- 가상 메모리와 물리 메모리는 모두 고정된 크기의 블록으로 나뉜다. 가상 메모리 블록을 "페이지" 라고 하고, 물리 메모리 블록을 "페이지 프레임" 이라고 한다.   Page Table가상 메모리를 물리 메모리로 매핑하는 데 사용되는 데이터 구조. 각 프로세스는 독립적인 가상 주소 공간을 가지며, 페이지 테이블은 이 가상 주소를 물리 주소로 변환(매핑)하는 역할을 한다. Page Tab..

PintOS 프로젝트 2주차 키워드 정리 ( User mode, Kernel mode, Register, Memory, System Call, File Descriptor, Cache, Atomic Operation, %rax, 32bit OS, 64bit OS, interrupt, Segmentation Fault )

User mode vs Kernel mode리눅스 운영체제는 User mode와 Kernel mode라는 두 가지 주요 실행 모드를 가지고 있다. 커널 모드(Kernel mode)- 운영체제의 핵심 부분인, "커널"이 실행되는 모드- 하드웨어에 대한 완전한 접근 권한을 가진다. -> 메모리, 프로세스 스케줄링, 파일 시스템 관리, 네트워킹 같은 low level 작업을 수행할 수 있다.- 시스템의 모든 자원을 제어할 수 있기 때문에, 커널 모드에서의 오류는 시스템에 심각한 영향을 미칠 수 있다.- 커널 모드에서는 시스템 모든 자원에 접근할 수 있는 광범위한 권한을 가지며, 따라서 커널 모드의 프로세스들은 메모리 공간을 공유한다. 사용자 모드(User mode)- 일반 응용 프로그램이 실행되는 모드- 커널..

PintOS 프로젝트 2주차 [User Programs / System Call] (2)

95개의 테스트 케이스 중 15개를 실패한 코드입니다. 주의해서 참고하세요.pass tests/userprog/args-nonepass tests/userprog/args-singlepass tests/userprog/args-multiplepass tests/userprog/args-manypass tests/userprog/args-dbl-spacepass tests/userprog/haltpass tests/userprog/exitpass tests/userprog/create-normalpass tests/userprog/create-emptypass tests/userprog/create-nullpass tests/userprog/create-bad-ptrpass tests/userprog/cr..

728x90
반응형