일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- #심플즈 크랙미
- #abex크랙미4번
- #심플즈
- #파밍
- #크랙미 9번
- GraphQL
- #abex
- #크랙미 10번
- #크랙미2번
- springframework
- #크랙미 5번
- leetcode
- #보안뉴스
- 리버싱
- Spring
- #크랙미
- #크랙미3번
- java
- #보안이슈
- #리버싱
- #고클린
- #abex크랙미
- java8
- Easy
- #크랙미4번
- Today
- Total
목록전체 글 (120)
Halo World
| 세그멘테이션 기법 가상 메모리 관리 기법 중 하나로 가상 메모리를 같은 크기의 블록으로 분할하는 페이징 기법과 달리 세그멘테이션 기법은 가상 메모리를 서로 크기가 다른 논리적 단위인 세그먼트(Segment)로 분할하고 메모리를 할당하는 기법이다. > 특징- 세그먼트들의 크기가 서로 다르기 때문에 메모리를 페이징 기법에서 처럼 미리 분할해 둘 수 없고, 메모리에 적재될 때 빈 공간을 찾아 할당하는 사용자 관점의 가상 메모리 관리 기법- 마이크로프로세서는 세그먼트 테이블을 참조하여 해당 세그먼트의 시작주소와 더해져서 실제적인 물리적 위치로 변환해줌 > 세그먼트- 세그먼트는 논리적 의미에 부합하도록 서로 크기가 다르며 각각의 세그먼트들은 연속적인 공간에 저장되어있다.- 세그먼트 가상 주소는 v = (s,d..
| 로더란? 컴퓨터 운영체제의 일부분으로, 하드디스크와 같은 외부 저장장치에 있는 특정 프로그램을 (대부분 응용프로그램이지만, 경우에 따라 그 자신의 일부가 될 수도 있음) 찾아서 주기억장치에 적재하고, 그 프로그램이 실행되도록하는 역할을 담당하는 것 | 로더의 기능 및 순서 1) 주기억 장치에 할당(Allocation): 목적프로그램이 주기억 장소 내의 공간 확보 2) 연결(Linking): 필요할 경우 여러 목적프로그램들 또는 라이브러리 루틴과의 링크 작업 3) 재배치(Relocation): 목적 프로그램을 실제 주기억 장소에 맞추어 재배치 4) 적재(Loading): 실제 프로그램과 데이터를 주기억 장소에 적재 | 로더의 종류 1) 컴파일 즉시 로더(Compile and Go): 번역기가 로더의 역..
//1,2,3더하기import java.util.*;public class p9095_add { static int d[]=new int[12]; public static void main(String args[]){ Scanner sc = new Scanner(System.in); int T=sc.nextInt(); d[1]=1; d[2]=2; d[3]=4; while(T-- >0){ int n=sc.nextInt(); int result=count(n); System.out.println(result); } } static int count(int n){ for(int i=4;i
//2Xn 타일링2 import java.util.*; public class p11726_2xn2 { static int d[]; public static void main(String args[]){ Scanner sc = new Scanner(System.in); int n=sc.nextInt(); d=new int[n+1]; int result = count(n); System.out.println(result); } static int count(int n){ if(n==1){ d[n]=1; return d[n]; } if(n==2){ d[n]=3; return d[n]; } if(d[n-1]==0) d[n-1]=count(n-1); if(d[n-2]==0) d[n-2]=count(n-2); d..
//2Xn 타일링 import java.util.*; public class p11726_2xn { static int d[]; public static void main(String args[]){ Scanner sc = new Scanner(System.in); int n=sc.nextInt(); d=new int[n+1]; int result = count(n); System.out.println(result); } static int count(int n){ if(n==1){ d[n]=1; return d[n]; } if(n==2){ d[n]=2; return d[n]; } if(d[n-1]==0) d[n-1]=count(n-1); if(d[n-2]==0) d[n-2]=count(n-2); d[n..
| Top Down 방식 import java.util.*; public class p1463_make1 { static int D[]; static int n; public static void main(String args[]){ Scanner sc = new Scanner(System.in); n=sc.nextInt(); D=new int[n+1]; int result = make_1(n); System.out.println(result); } static int make_1(int x){ int Min; if(x==1) return 0; if(D[x-1]>0) Min=D[x-1]+1; else{ D[x-1]=make_1(x-1); Min=D[x-1]+1; } if(x%3==0){ int tmp=x..
import java.util.*; public class pro_7576_3 { static int a[][]; static int MAX; static int n,m; static int dx[]={0,0,1,-1}; static int dy[]={1,-1,0,0}; public static void main(String args[]){ Scanner sc = new Scanner(System.in); m=sc.nextInt(); n=sc.nextInt(); a=new int[n][m]; int x,y,cx=0,cy=0; Queue qx=new LinkedList(); Queue qy=new LinkedList(); for(int i=0;i
import java.util.*; public class 텀프로젝트_9466 { static int a[];//입력받는 배열 static int check[];//방문 check(시작에서부터 몇번째로 방문되는 것인지) static int startVertex[];//시작정점 static int dfs(int cur, int cnt, int start){ /*이미 방문했던 정점이고 * 시작정점이 start와 다르면 start 정점은 사이클 외에 있는 정점이므로 0을 리턴, * 아니면 (현재 cnt - start로부터 몇번째로 방문한 정점인지) 리턴 */ if(check[cur]!=0){ if(start!=startVertex[cur]) return 0; return cnt-check[cur]; } che..
| 공통점 버퍼링과 스풀링 모두 CPU의 처리속도와 입출력 장치의 속도 차이를 보완하기 위한 방법 | 차이점 1) 버퍼링- 버퍼링은 빠른 CPU와 상대적으로 속도가 느린 입출력장치 사이에 효율을 높이기 위해서 사용- CPU와 입출력 장치를 항상 활용하고자 함- 주기억장치 내에 버퍼를 둠으로써 입력시에는 CPU가 버퍼의 내용을 가져다 쓰고 입력장치가 버퍼에 내용을 기록- 출력시에는 CPU가 연산된 결과를 버퍼에 저장하고, 출력장치는 버퍼의 내용을 꺼내서 출력- 한 레코드가 읽혀 CPU가 그것에 대해 연산을 시작함과 동시에 입출력 장치는 곧 다음에 필요한 레코드를 미리 읽어서 주기억장치에 저장함으로써 CPU가 필요로하는 레코드를 기다림 없이 전달해 줄 수 있음- 주기억 장치를 버퍼로 사용 - 버퍼 : 파일로..
import java.util.*; public class pro_2178 { static int[][] a=new int[100][100]; static int[][] visit=new int[100][100]; static int dx[]={0,0,1,-1}; static int dy[]={-1,1,0,0}; //왼쪽, 오른쪽, 위, 아래 static int MIN=10000; static int n,m; public static void main(String args[]){ Scanner sc = new Scanner(System.in); n=sc.nextInt(); m=sc.nextInt(); for(int i=0;i