본문 바로가기

전체 글

(96)
토비의 스프링 1장 실습 - 시작하기(IntelliJ - MySQL 연동) 토비의 스프링 1장 학습을 토대로 실습하기 [MySql 설치] 시작하기 앞서 내가 실습한 환경이다 OS : Windows10 IDE : IntelliJ Community DB : MySQL(이건 인프런의 김영한 님 강의를 따라 할 때 h2를 사용했는데 선택적으로 사용하면 될 거 같다) MySQL 설치하기 MySQL Download URL https://dev.mysql.com/downloads/installer/ MySQL 설치 URL을 통해서 설치를 진행해준다 MySQL Product Archives 설치하기 https://downloads.mysql.com/archives/c-j/ MySQL Product Archives 설치 URL을 통해 알맞은 버전을 설치한다 다운로드를 진행하고 압축을 풀어준 뒤..
[OS]시스템구조 - 컴퓨터 계층구조 저장장치 계층구조 Caching: copying information into faster storage system 재사용 목적 처음에는 밑에부터 읽어 오지만 기록된건 Cach memory에서 불러와 사용한다 파일 시스템용 전원 Off시 유지해야할 정보가 있으면 그것을 파일 형태로 보조 기억 장치에 저장 메모리는 휘발성이므로 비휘발성 매체인 디스크를 파일 시스템용으로 흔히 사용 메모리의 연장공간인 스왑영역 OS는 프로그램 수행에 당장 필요한 부분만 메모리에 올려 놓고 나머지는 디스크의 스왑영역에 내려놓게 된다 디스크에 내려놓는 일을 스왑아웃이라 한다 스왑아웃된 부분이 필요 시 다시 메모리 영역에 올린다 스왑 영역은 프로그램이 실행 시 내용을 저장했다가 프로그램이 종료될 때 삭제하는 메모리의 연장공간으로..
[OS]동기식/비동기식 [동기식 입출력과 비동기식 입출력] 동기식 입출력(Synchronous I/O) I/O장치까지 직접가서 결과를 보고 온다. 보고온 일을 실행하는 것(Sync-read) 보고온 일을 실제 적어보고 실행(Sync-write) I/O요청 후 입출력 작업시 완료된 후에야 제어가 사용자 프로그램에 넘어간다. → 봉쇄상태(Blocked state) 👉 CPU낭비가 있다. 입출력 요청의 동기화를 위해 장치별로 큐(queue)를 두어 요청 순서대로 처리된다. 비동기식 입출력(Asynchronous I/O) I/O가 시작된 후, 입출력 작업이 끝나기를 가디리지 않고 제어가 사용자 프로그램에 즉시 넘어간다. [DMA(Direct Memory Access)] 메모리 직접 접근이 가능하다. CPU에 너무 많은 interrup..
[OS]인터럽트(Interrupt) 2. Interrupt OS 커널에는 인터럽트가 들어왔을 때 해야할 일을 미리 다 프로그래밍 해서 보관하고 있다 → 이중 하나가 인터럽트 처리 루틴 인터럽트 당한 시점의 레지스터와 program counter를 save한 후, CPU의 제어를 처리 루틴에 넘긴다 Software Interrupt = Trap ⇒ Exception, System call I/O를 위한 인터럽트: 1) 요청: Software interrupt 2) 종료: Hardware interrupt 인터럽트 종류별로 할 일에 대해 OS에 정의가 되어 있다 사용이 끝남에 때해서는 device controller가 interrupt line에 알린다 점유 시간이 종료된 경우 timer가 interrupt line에 알린다 interrupt..
[OS]시스템구조 OS중 항상 메모리에 올라가 있는 부분은 전체 OS 중 일부분에 해당 → 커널 1) device controller: 작은 CPU와 같은 역할(I/O device를 관리하는 작은 CPU) → 장치에서 로컬 버퍼로 읽어오는 역할 데이터를 모두 가지고 왔는지 확인하는 작업을 위해 인터럽트를 발생시켜 CPU에게 알림 2) local buffer: 작업공간, 장치로부터 들어오고 나가는 데이터를 임시로 저장하기 위한 작은 메모리 3) memory: CPU가 놀지 않도록 하기 위해 I/O발생 시 I/O Controller가 작업하고 CPU는 memory와 일을 한다 4) memory controller: 메모리 접근 순서 제어 5) DMA controller: 직접 메모리 접근 6) timer: 특정 프로그램의 C..
[OS]운영체제 시스템 소개 1. 운영체제(Operating System, OS) 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어 사용자오 각종 소프트웨어 연결 2. 운영체제 목적 컴퓨터 시스템의 자원을 효율적으로 관리 → 주어져있는 제한된 하드웨어 자원으로 효율적 관리(=형평성 있는 자원 분배) 컴퓨터 시스템을 편리하게 사용할 수 있도록 환경제공 3. 운영체제 분류 동시작업 가능여부 [1]단일작업(Single tasking): 한번에 하나의 작업 처리 ex) MS-DOS [2]다중작업(Multi tasking): 동시에 두개 이상의 작업처리 ex) UNIX, MS Windows 등 사용자수 [1]단일 사용자(Single user): ex) MS-DOS, MS Windows [2]다중 사용자(Multi user): ex) UNIX,..
[백준 9935]문자열 폭발 문제링크 www.acmicpc.net/problem/9935 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net 문제 난이도(solved.ac 기준) Gold4 문제설명 1. 입력받은 문자열을 Char으로 하나씩 읽어서 새로운 공간에 쌓는다 2. 폭탄 문자열의 마지막 문자와 새로운 공간에 들어가는 문자가 같은 경우 3. 현재 새로운 공간에 쌓인 문자열의 길이가 폭탄 문자열 길이보다 작은 경우 폭탄은 존재하지 않는다 4. (3의 경우가 아니라면) 쌓여있는 문자열을 거꾸로 검사하며 폭탄과 같은지 비교한..
[백준 1647]도시 분할 계획 문제링크 www.acmicpc.net/problem/1647 1647번: 도시 분할 계획 첫째 줄에 집의 개수N, 길의 개수M이 주어진다. N은 2이상 100,000이하인 정수이고, M은 1이상 1,000,000이하인 정수이다. 그 다음 줄부터 M줄에 걸쳐 길의 정보가 A B C 세 개의 정수로 주어지는데 A번 집 www.acmicpc.net 문제난이도(solved.ac 기준) Gold4 문제풀이 ※문제의 말이 복잡해 보일 수 있지만, 결국 최소신장트리를 구하라는 말이다※ 최소신장트리를 구하기 위해 Kruskal알고리즘을 이용해서 풀었다 1. 최초 각 노드들의 부모는 자기자신이다 - 아직 연결된 노드가 없으므로 자기자신이 부모가 된다 2. 간선 클래스를 이용하여 각 노드들의 간선 정보를 입력해준다 3. ..
[프로그래머스 42884]단속카메라 문제링크 programmers.co.kr/learn/courses/30/lessons/42884 코딩테스트 연습 - 단속카메라 [[-20,15], [-14,-5], [-18,-13], [-5,-3]] 2 programmers.co.kr 문제난이도 Level3 문제설명 1. 차량의 고속도로 집입 시점을 기준으로 오름차순 정렬 2. 차량의 이동안에 단속카메라가 있으면 해당 자동차 위치로 단속카메라 필요 범위 수정 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 ..
[프로그래머스 42861]섬 연결하기 문제링크 programmers.co.kr/learn/courses/30/lessons/42861 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr 문제난이도 Level3 문제풀이 ※최소비용을 구하기 위해서 Union-Find 알고리즘을 이용해서 풀이해보았다※ 1. 각 노드들의 부모를 초기 설정 해준다 - 처음에는 연결된 노드가 없으므로 자기자신이 부모가 된다 2. 주어진 노드간의 비용을 기준으로 오름차순 정렬을 한다 3. 주어진 노드 정보 탐색을 시작한다 3-1. 연결될 두 노드의 부모가 같은 경우, 순환이 발생되어 최소비용의 조건이 깨지므로 연산하지 않는다 3-2. 연결될 두 노드의 부모가 다른 경우, 노드..