프로그램의 실행 프로그램의 실행은 컴퓨터 시스템 차원에서 두가지의 의미를 가진다. 디스크에 존재하던 실행 파일이 메모리에 적재된다. 프로그램이 CPU를 할당 받고 기계 명령을 수행하고 있는 상태이다. 실행 파일이 메모리에 적재될 때, 실행 파일 일부분만 메모리에 올라가고 나머지는 디스크의 특정 영역에 내려가 있는다. 이러한 특정 영역을 스왑 영역 이라고 한다. 각 프로그램마다 독자적으로 존재하는 코드, 데이터, 스택 주소공간을 가상 메모리(virtual memory) 혹은 논리적 메모리(logical memory)라고 부른다. 실제 물리적 메모리의 주소와 독립적으로 각 프로그램마다 독자적인 주소 공간을 가지기 때문이다. 운영체제도 하나의 프로그램으로서 운영체제 커널 또한 코드, 데이터, 스택의 주소 공간..
컴퓨터 시스템의 작동 개요 CPU는 현재 수행해야 할 메모리 주소의 명령을 있는 그대로 처리한다. CPU가 수행해야 할 메모리 주소를 담고있는 레지스터를 프로그램 카운터(PC) 라고 부른다. 즉 CPU는 PC가 가르키는 메모리 여역의 명령을 처리한다. 시스템 동작이 CPU에 의해서만 이루어지는것은 아니다. 입출력 장치와 이들 장치를 전담하는 컨트롤러 및 버퍼로 구성된다. (컨트롤러는 작은 CPU, 버퍼는 그에 상응하는 메모리) PC가 메모리 주소 중 운영체제가 존재하는 부분을 가르키고 있으면 현재 운영체제의 코드를 수행중이며, CPU가 커널모드에서 수행중이라고 한다. PC가 메모리 주소 중 사용자 프로그램이 존재하는 부분을 가르키고 있으면 사용자모드라고 한다. CPU가 수행하는 명령에는 일반명령과 특별 ..
프로그램 구조와 인터럽트 프로그램이 CPU에서 명령을 수행하려면 수행하려는 주소영역이 메모리에 올라가 있어야 한다. 이때 프로그램의 주소 영역은 코드, 데이터, 스택 영역으로 구분된다. 코드 영역 : 작성된 프로그램의 함수들의 코드가 기계어 명령으로 변환되어 저장되는 부분 데이터 영역 : 전역 변수 등 프로그램이 사용하는 데이터를 저장하는 부분 스택 영역 : 함수가 호출될 때 호출된 함수의 수행을 마치고 복귀할 주소 및 데이터를 임시로 저장하는데 사용되는 공간 인터럽트 동작 원리도 함수의 호출과 비슷하다. 프로그램의 경우 인터럽트가 발생하면 현재 수행중인 명령을 프로그램의 스택 영역에 저장한다. 이후 운영체제 내부 코드인 인터럽트 처리 루틴으로 넘어가서 인터럽트를 처리하고 다시 돌아와 이전 작업부터 수행..
백준 알고리즘 (2632번)피자판매 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2 초 128 MB 1330 444 313 35.129% 문제 고객이 두 종류의 피자 A와 B를 취급하는 피자가게에서 피자를 주문하고자 한다. 과 같이 각 종류의 피자는 다양한 크기의 여러 개의 피자조각으로 나누어져 있다. 각 조각에 쓰여진 숫자는 피자조각의 크기를 나타낸다. 고객이 원하는 피자의 크기를 이야기하면, 피자가게에서는 한 종류의 피자를 2 조각 이상 판매할 때는 반드시 연속된 조각들을 잘라서 판매한다. 이때 판매한 피자조각의 크기 합이 주문한 크기가 되어야 한다. 판매한 피자조각은 모두 A종류이거나, 모두 B종류이거나, 또는 A와 B 종류가 혼합될 수 있다. 예를 들어서, 과 같이 잘라진 피자가 있을 ..
백준 알고리즘 부분수열의 합 2 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 256 MB 5710 1086 693 20.798% 문제 N개의 정수로 이루어진 수열이 있을 때, 길이가 양수인 부분수열 중에서 그 수열의 원소를 다 더한 값이 S가 되는 경우의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 40, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. 출력 첫째 줄에 합이 S가 되는 부분수열의 개수를 출력한다. 예제 입력 1 5 0 -7 -3 -2 5 8 예제 출력 1 1 이 문제는 이전에 풀어본 부분수열의 합(1182..
백준 알고리즘스도쿠 (2580 번)시간 제한메모리 제한제출정답맞은 사람정답 비율1 초256 MB119433571223232.689%문제스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루어진 정사각형 판 위에서 이뤄지는데, 게임 시작 전 몇 몇 칸에는 1부터 9까지의 숫자 중 하나가 쓰여 있다.나머지 빈 칸을 채우는 방식은 다음과 같다.각각의 가로줄과 세로줄에는 1부터 9까지의 숫자가 한 번씩만 나타나야 한다.굵은 선으로 구분되어 있는 3x3 정사각형 안에도 1부터 9까지의 숫자가 한 번씩만 나타나야 한다.위의 예의 경우, 첫째 줄에는 1을 제외한 나머지 2부터..
백준 알고리즘N-Queen(9663번)시간 제한메모리 제한제출정답맞은 사람정답 비율10 초128 MB115616682432557.767%문제N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다.N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오.입력첫째 줄에 N이 주어진다. (1 ≤ N < 15)출력첫째 줄에 퀸 N개를 서로 공격할 수 없게 놓는 경우의 수를 출력한다.예제 입력 1 복사8예제 출력 1 복사92 이 문제는 완전탐색, 백트랙킹을 이용한 접근으로 풀이하였다. 기본 전략은 다음과 같다.row 0 부터 순차적으로 col을 선택한다.col 선택을 확정짓기전에 해당 col 인덱스에 놓아도 적합한지 검사한다. (check 함수를 통해)r..
백준 알고리즘암호 만들기(1759번)시간 제한메모리 제한제출정답맞은 사람정답 비율2 초128 MB125035493391544.088%문제바로 어제 최백준 조교가 방 열쇠를 주머니에 넣은 채 깜빡하고 서울로 가 버리는 황당한 상황에 직면한 조교들은, 702호에 새로운 보안 시스템을 설치하기로 하였다. 이 보안 시스템은 열쇠가 아닌 암호로 동작하게 되어 있는 시스템이다.암호는 서로 다른 L개의 알파벳 소문자들로 구성되며 최소 한 개의 모음과 최소 두 개의 자음으로 구성되어 있다고 알려져 있다. 또한 정렬된 문자열을 선호하는 조교들의 성향으로 미루어 보아 암호를 이루는 알파벳이 암호에서 증가하는 순서로 배열되었을 것이라고 추측된다. 즉, abc는 가능성이 있는 암호이지만 bac는 그렇지 않다.새 보안 시스템에..