기본 콘텐츠로 건너뛰기

알고리즘 복습하기

복습도 할겸, 새로산 노트9 펜도 써볼겸 겸사겸사

우왕 예비군끝~!

어제 마지막 예비군 훈련을 받았다. 6년동안 받던 훈련도 끝났구나..ㅜ 그만큼 나이를 먹었다는 뜻이겠지. 이제 2년간의 휴식기를 갖고 민방위훈련을 받게되는데 그동안에 뭔가를 이루고싶다. 개인적인 목표이든 외적인 성과이든 뭔가 쉽지않은 것으로. 시간이 흐르면 절로 생기는 것들말고. 오래동안 해오던것에 변화가 생기면 과거를 되돌아보게되는데 2년후에 민방위훈련을 시작하게되면 아마도 2년동안 무엇을했나 생각하게될것 같다. 그때 '아 그래도 이것 하나는 이뤘네, 놀기만 한건아니네' 라고 생각하고싶다. 그 동안 고민도 많이하고 시간도 많이 날렸다 빠이팅해보자!!

인터럽트와 예외 - 1

개요 인터럽트는 프로세서가 실행하는 명령어의 순서를 바꾸는 사건으로 정의한다. 이런 사건은 CPU의 내·외부에서 하드웨어적인 회로가 발생하는 전기적인 신호에 해당하다. 흔히 동기적 인터럽트와 비동기적 인터럽트로 나눈다. 동기적인 인터럽트는 CPU의 제어 유닛이 명령어를 실행하는 과정에서 발생하는데, 제어 유닛은 명령어 실행을 마친 후에만 이를 발생시키기 때문에 동기적이라고 한다. 비동기적 인터럽트는 다른 하드웨어 장치가 CPU 클럭의 신호와 관계없이 아무 때나 발생한다. 인텔 마이크로프로세서 매뉴얼에서는 동기적인 인터럽트를 예외(Exception), 비동기적인 인터럽트를 인터럽트라고 명한다. 인터럽트는 간격 타이머와 입출력장치에 의해 발생한다. 입출력장치인 키보드의 키를 누르면 인터럽트가 발생한다. 반면, 예외는 프로그래밍 에러나 커널이 처리해야 하는 비정상적인 상황에 의해 발생한다. 프로그래밍 에러인 경우 커널은 현재 프로세스에게 신호를 보내 예외를 처리한다. 비정상적인 상황인 경우에는 페이지 폴트(Page Fault)나 커널 서비스 요청(int 또는 systenter) 같은 비정상적인 상황을 복구하는데 필요한 모든 단계를 수행한다. 인터럽트 신호와 역할 인터럽트 신호는 프로세서가 정상적인 제어 흐름 밖의 코드로 방향을 바꾸는 방법을 제공한다. 인터럽트 신호가 도착하면 CPU는 EIP와 CS 레지스터를 커널 모드 스택에 저장하고, 발생한 인터럽트 종류와 연계된 주소를 프로그램 카운터에 넣어 수행한다. 이 전환 과정은 프로세스 전환 과정의 컨텍스트 전환과 큰 차이가 있다. 인터럽트·예외 핸들러가 실행하는 코드는 프로세스가 아니다. 인터럽트가 발생한 시점에 CPU를 점유하고 있던 프로세스가 수행되던 과정에서 실행되는 커널 제어 경로라고 할 수 있다. 인터럽트 핸들러는 커널 제어 경로 이므로 프로세스보다 가볍다. 인터럽트는 다음의 조건을 만족해야 한다. 가능한 빨리 인터럽트에서 벗어나고 되도록 ...

프로그래머스 - 줄서는 방법

문제가 점점 어려워지는군욤 import java.util.ArrayList ; import java.util.Arrays ; public class LineCombination { public int [] setAlign ( int n , long k ) { int [] answer = new int [ n ]; ArrayList < Integer > list = new ArrayList < Integer >(); int [] fac = new int [ n + 1 ]; fac [ 0 ] = 1 ; for ( int i = 1 ; i < n ; i ++) { fac [ i ] = fac [ i - 1 ]* i ; } int idx = 0 ; for ( int i = 0 ; i < n ; i ++) { list . add ( i + 1 ); } for ( int i = 0 ; i < n ; i ++) { idx =( int ) (( k - 1 )/ fac [ n - 1 - i ]); answer [ i ]= list . get ( idx ); list . remove ( idx ); k =( k - 1 )% fac [ n - 1 - i ]+ 1 ; } return answer ; } // 아래는 테스트로 출력해 보기 위한 코드입니다. public static void main ( String [] args ) { LineCombi...

SQL 고난이도

1.emp에서 이름, 급여, 커미션 금액, 총액(급여+커미션금액)을 구하여 총액이 많은 순서대로 출력하라. select first_name, salary, salary*commission_pct, (salary + salary*commission_pct) total from hr_employees where commission_pct is not null 2. 80번 부서의 모든사람들에게 급여의 13%를 보너스로 지불하기로 했다. 이름, 급여, 보너스 금액, 부서번호를 출력하라 select first_name, salary, salary*0.13, department_id from hr_employees where department_id=80

뉴럴 네트워크 기초 - 실수치 회로, 역전파

https://tensorflow.blog/1%EC%9E%A5-%EC%8B%A4%EC%88%98%EC%B9%98-%ED%9A%8C%EB%A1%9C-%ED%95%B4%EC%BB%A4%EA%B0%80-%EC%95%8C%EB%A0%A4%EC%A3%BC%EB%8A%94-%EB%89%B4%EB%9F%B4-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/ 을 공부한 내용 https://github.com/jaejin0me/NeuralNetwork import sys import random from math import exp class rgate : def mul ( x , y ): return x * y def add ( x , y ): return x + y class unit : value = 0.0 grad = 0.0 def __init__ ( self , value = 0.0 , grad = 0.0 ): self .value = value self .grad = grad class u : value = 0.0 grad = 0.0 def __init__ ( self , value = 0.0 , grad = 0.0 ): self .value = value self .grad = grad class mg : u0 = None u1 = None ru = None def __init__ ( self , u0 = None , u1 = None ): self .u0 = None self .u1 = None self .ru = None def f ( self , u0 , u1 ): self .u0 = u0 self .u1 = u1 self .ru = unit(u0.value * u1.value, 0 ) return self .ru def b ( self ): self .u0.grad += self .ru.gra...