본문 바로가기
728x90

전체 글172

백준 11726번 2 * n 타일링 1. 문제 설명 문제 링크 ×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. 입력 첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000) 출력 첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다. 2. 코드 import java.util.Scanner; class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] dp = new int[n + 2]; dp[1] = 1; dp[2] = 2; for (in.. 2023. 1. 13.
프로세스의 메모리 구조 와 PCB 프로세스의 메모리 구조 운영체제는 프로세스에 적절한 메모리를 할당하는데 다음 구조를 기반으로 할당한다. 위에서 부터 스택(stack), 힙(heap), 데이터 영역(BSS segment, Data segment), 코드 영역(code segment) 으로 나눠진다. 스택은 위 주소부터 할당되고 힙은 아래 주소부터 할당된다. 스택 스택에는 지역변수, 매개변수, 함수가 저장되고 컴파일 시에 크기가 결정되며 '동적'인 특징을 갖는다. 힙 힙은 동적 할당할 때 사용되며 런타임시 크기가 결정 된다. ex) 벡터 같은 동적 배열은 당연히 힙에 동적 할당된다. 힙은 '동적'인 특징을 가진다. 데이터 영역 데이터 영역은 전역변수, 정적변수가 저장되고, 정적인 특징을 갖는 프로그램이 종료 되면 사라지는 변수가 들어 있는.. 2023. 1. 13.
백준 1913번 달팽이 1. 문제 설명 문제 링크 홀수인 자연수 N이 주어지면, 다음과 같이 1부터 N2까지의 자연수를 달팽이 모양으로 N×N의 표에 채울 수 있다. 9 2 3 8 1 4 7 6 5 25 10 11 12 13 24 9 2 3 14 23 8 1 4 15 22 7 6 5 16 21 20 19 18 17 N이 주어졌을 때, 이러한 표를 출력하는 프로그램을 작성하시오. 또한 N2 이하의 자연수가 하나 주어졌을 때, 그 좌표도 함께 출력하시오. 예를 들어 N=5인 경우 6의 좌표는 (4,3)이다. 입력 첫째 줄에 홀수인 자연수 N(3 ≤ N ≤ 999)이 주어진다. 둘째 줄에는 위치를 찾고자 하는 N2 이하의 자연수가 하나 주어진다. 출력 N개의 줄에 걸쳐 표를 출력한다. 각 줄에 N개의 자연수를 한 칸씩 띄어서 출력하.. 2023. 1. 12.
프로세스 컴파일 과정 과 프로세스 상태 프로세스와 스레드 프로세스(process)는 컴퓨터에서 실행되고 있는 프로그램을 말하며 CPU 스케줄링의 대상이 되는 작업(task)이라는 용어와 거의 같은 의마로 쓰인다. 스레드는 프로세스 내 작업의 흐름을 지칭한다. 위의 그림 처럼 프로그램이 메모리에 올라가면 프로세스가 되는 인스턴스화가 일어나고, 이후 운영체제의 CPU 스케줄러에 따라 CPU가 프로세스를 실행한다. 프로세스 와 컴파일 과정 프로세스는 프로그램으로부터 인스턴스화 된것을 말한다. ex) 프로그램은 구글 크롬 프로그램 (chrome.exe)과 같은 실행 파일이며, 이를 두 번 클릭하면 구글 크롬 '프로세스'가 시작되는 것이다. 프로그램은 컴파일러가 컴파일 과정을 거쳐 컴퓨터가 이해할 수 있는 기계어로 번역되어 실행될 수 있는 파일이 되는.. 2023. 1. 12.
메모리 관리 메모리 관리 운영체제의 대표적인 할 일중 하나가 메모리 관리이다. 컴퓨터 내의 한정된 메모리를 극한으로 활용해야 하는 것이기 때문이다. 가상메모리 가상 메모리(virtual memory) 는 메모리 관리 기법의 하나로 컴퓨터가 실제로 이용 가능한 메모리 자원을 추상화하여 이를 사용하는 사용자들에게 매우 큰 메모리로 보이게 만드는 것을 말한다. 이때 가상적으로 주어진 주소를 가상 주소(logical address) 라고 하며, 실제 메모리상에 있는 주소를 실제 주소(physical address) 라고 한다. 가상 주소는 메모리관리장치(MMU)에 의해 실제 주소 로 변환되며, 이 덕분에 사용자는 실제 주소를 의식할 필요 없이 프로그램을 구축할 수있게 된다. 가상 메모리는 가상 주소와 실제 주소가 매핑되어 .. 2023. 1. 11.
메모리 계층 메모리 CPU는 그저 '메모리'에 올라와 있는 프로그램의 명령어들을 실행할 뿐이다. 메모리 계층과 메모리 관리 를 알아보자!! 메모리 계층 메모리 계층은 레지스터, 캐시, 메모리, 저장장치로 구성되어 있다. 레지스터: CPU 안에 있는 작은 메모리, 휘발성, 속도 가장 빠름, 기억 용량이 가장 적다. 캐시 : L1, L2 캐시를 지칭한다. 휘발성, 속도 빠름, 기억 용량이 적다. 참고 L3 캐시도 존재 한다. 주기억장치 :RAM을 가르킨다. 휘발성, 속도 보통, 기억 용량이 보통이다. 보조기억장치 : HDD, SDD를 일컫으며 휘발성, 속도 낮음, 기억 용량이 많다. 램은 하드디스크로부터 일정량의 데이터를 복사해서 임시 저장하고 이를 필요 시마다 CPU에 빠르게 전달하는 역할을 한다. 계층 위로 올라갈수.. 2023. 1. 10.
728x90