분류 전체보기407 [JAVA] 디스크 컨트롤러 문제 설명 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를들어 - 0ms 시점에 3ms가 소요되는 A작업 요청 - 1ms 시점에 9ms가 소요되는 B작업 요청 - 2ms 시점에 6ms가 소요되는 C작업 요청 와 같은 요청이 들어왔습니다. 이를 그림으로 표현하면 아래와 같습니다. 한 번에 하나의 요청만을 수행할 수 있기 때문에 각각의 작업을 요청받은 순서대로 처리하면 다음과 같이 처리 됩니다. - A: 3ms 시점에 작업 완료 (요청에서 종료까지 : 3ms) - B: 1ms부터 대기하다가, 3ms 시점에 작업을 시작해서 12ms 시점에 작업 완료(요청에서 종료까지 : 11.. 2023. 4. 16. [혼공운영체제] 4. 빠른 CPU를 위한 설계 기법 인프런의 개발자를 위한 컴퓨터 공학1 : 혼자 공부하는 컴퓨터 구조 + 운영체제 강의를 듣고, 학습 및 요약 CPU의 속도를 빠르게 만들어보기 1. 컴퓨터 부품들은 '클럭 신호'에 맞춰 일사불란하게 움직인다. => 클럭 속도를 빠르게? 2. CPU는 '명령어 사이클'이라는 정해진 흐름에 맞춰 명령어들을 실행한다. 클럭 속도 헤르츠(Hz) 단위로 측정 헤르츠(Hz) : 1초에 클럭이 반복되는 횟수 클럭이 '똑-딱-' 하고 1초에 한 번 반복되면 1Hz 클럭이 1초에 100번 반복되면 100Hz 필요 이상으로 클럭을 높이면 발열이 심각해짐 클럭 속도를 늘리는 방법 이외에는? 코어 수를 늘리는 방법 "듀얼 코어" "멀티 코어" 스레드 수를 늘리는 방법 "멀티 스레드" 코어(Core) CPU 내에서 명령어를 실.. 2023. 4. 16. [혼공운영체제] 3. 명령어 사이클과 인터럽트 인프런의 개발자를 위한 컴퓨터 공학1 : 혼자 공부하는 컴퓨터 구조 + 운영체제 강의를 듣고, 학습 및 요약 CPU는 메모리 안에 있는 프로그램을 어떤 정해진 흐름대로 처리하게 되는 데 이 때 정해진 흐름, 주기를 명령어 사이클이라고 한다. (즉, 프로그램 속 명령어들은 일정한 주기가 반복되며 실행된다. 이 주기가 명령어 사이클이다.) 하지만 CPU로 명령어를 가지고 와도 바로 실행이 불가능한 경우도 있다. 그래서 메모리 접근이 더 필요한 경우에는 간접 사이클을 이용하기도 한다. 어떤 명령어는 인출과 실행 사이클만으로 실행되고, 어떤 명령어는 인출, 간접, 실행 사이클을 거쳐 실행된다. 간혹 정해진 흐름을 방해하는 신호가 CPU한테 올 수 있는데 정해진 흐름을 끊는 신호를 인터럽트라고 한다. CPU가 얼.. 2023. 4. 16. [JAVA]더 맵게 + Priority Queue 힙(Heap Tree) 완전 이진 트리의 일종으로 우선순위 큐를 위하여 만들어진 자료구조이다. 여러 개의 값 중에서 최댓값이나 최솟값을 빠르게 찾아내도록 만들어진 이진 트리 일종의 반정렬 상태(느슨한 정렬 상태) 를 유지 큰 값이 상위 레벨에 있고 작은 값이 하위 레벨에 있다는 정도 즉, 부모 노드의 키 값이 자식 노드의 키 값보다 항상 큰(작은) 이진 트리 힙 트리에서는 중복된 값을 허용한다. (이진 탐색 트리에서는 중복된 값을 허용하지 않는다.) 완전 이진트리(마지막 레벨을 제외하고 모든 레벨이 완전히 채워져 있는 트리의 형태)를 기본으로 하고 있고, 그 목적에 맞게 두 개의 타입으로 나뉜다. 1. Max-heap 루트 노드의 key는 무조건 해당 노드의 자식 노드들의 key보다 크거나 같다. 같은 .. 2023. 4. 16. 프로그래머스 Level.0 모음집 등차수열 연속된 수의 합 이진수 이진수 더하기 : 10진수 => 2진수, 8진수, 16진수 / 2진수, 8진수, 16진수 => 10진수 if문, 삼항연산자 점의 위치 구하기 최대공약수, 최소공배수 분수의 덧셈 팩토리얼 제곱근 정수 제곱근 판별 순서쌍의 개수 : 약수의 개수 구하기(제곱근이용) 합성수 찾기 : 합성수 구하기 소인수분해 : set, hashset, int[ ] -> Integer[ ] / Integer[ ] -> int[ ] 제곱수 판별하기 : Math.sqrt( )를 사용 배열 배열 뒤집기 알고리즘 자연수 뒤집어 배열로 만들기 자릿수 더하기 최빈값 구하기 배열 제거하기 진료 순서 정하기 배열 회전시키기 : list, stream 포함 2차원으로 만들기 : 2차원 배열 컨트롤 제트 : Arr.. 2023. 4. 15. [JAVA] 문자열 밀기 문제 설명 문자열 "hello"에서 각 문자를 오른쪽으로 한 칸씩 밀고 마지막 문자는 맨 앞으로 이동시키면 "ohell"이 됩니다. 이것을 문자열을 민다고 정의한다면 문자열 A와 B가 매개변수로 주어질 때, A를 밀어서 B가 될 수 있다면 밀어야 하는 최소 횟수를 return하고 밀어서 B가 될 수 없으면 -1을 return 하도록 solution 함수를 완성해보세요. 제한사항 0 없다는 것 => -1 return class Solution { public int solution(String A, String B) { int answer = 0; String copyA = A; for(int i=0;i 2023. 4. 15. 이전 1 ··· 5 6 7 8 9 10 11 ··· 68 다음