전체 글 18

[운영체제] CPU 스케줄링 (2)

Multilevel Queue-Ready queue를 여러 개로 분할1) foreground (interactive)2) background (batch-no human interaction)-각 큐는 독립적인 스케줄링 알고리즘을 가짐1) foreground-RR2) background-FCFS-큐에 대한 스케줄링이 필요Fixed priority schedulingTime slice: 각 큐에 CPU time을 적절한 비율로 할당(80% to foreground in RR, 20% to background in FCFS) Multilevel Feedback Queue -프로세스가 다른 큐로 이동 가능-에이징(aging)을 이와 같은 방식으로 구현할 수 있다-Multilevel-feedback-queue ..

[백준] 불 4179 java - bfs

https://www.acmicpc.net/problem/4179 [첫번째 틀린 답안]불과 지훈이가 동시에 움직이는 것이 이 문제의 포인트라고 할 수 있다.동시간대에 불과 지훈이를 하나씩 움직여줘야 되는데이를 어떻게 처리해야할지가 어려웠다..처음에는 아래처럼 로직을 짰는데생각해보니 아래 코드는 불의 위치가 지훈이보다 앞서있을 때에만 유효한 코드이다.. import java.io.*;import java.util.*;public class Main { static int R,C; static char[][] map; static boolean[][] visited; static int[] dx = {1,-1,0,0}; static int[] dy = {0,0,1,-1}; s..

스터디/Algorithm 2024.05.03

[프로그래머스스쿨] 가장 큰 수 java (lv.2)

https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 내 풀이  import java.util.*;class Solution {public String solution(int[] numbers) {String answer = "";String[] arr = new String[numbers.length]; for(int i=0;i (o2+o1).compareTo(o1+o2)); for(int i=0;i}    Arrays.sort커스텀하..

스터디/Algorithm 2024.05.03

[백준] 겹치는 건 싫어 java - two pointer

https://www.acmicpc.net/problem/20922출력조건을 만족하는 최장 연속 부분 수열의 길이를 출력한다.예제 입력 1 복사9 23 2 5 5 6 4 4 5 7예제 출력 1 복사7예제 입력 2 복사10 11 2 3 4 5 6 6 7 8 9예제 출력 2 복사6  내 풀이hashMap과 투 포인터로 풀었다hashMap에 배열 값을 0으로 초기화 해준 후K초과 일 때에 start_index를 증가시키는 방향으로 로직을 짰다  import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new ..

스터디/Algorithm 2024.05.02

[백준] 배열 합치기 java - two pointer

문제정렬되어있는 두 배열 A와 B가 주어진다. 두 배열을 합친 다음 정렬해서 출력하는 프로그램을 작성하시오.입력첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000)둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거나 같은 정수이다.출력첫째 줄에 두 배열을 합친 후 정렬한 결과를 출력한다.예제 입력 1 복사2 23 52 9예제 출력 1 복사2 3 5 9예제 입력 2 복사2 14 71예제 출력 2 복사1 4 7예제 입력 3 복사4 32 3 5 91 4 7예제 출력 3 복사1 2 3 4 5 7 9  내 답안1. 투 포인터 활용import java.io.*;import java.util.*;p..

스터디/Algorithm 2024.04.29

[운영체제] CPU 스케줄링 (1)

CPU-burst Time의 분포 여러 종류의 job(=process)이 섞여 있기 때문에 CPI 스케줄링이 필요 -interactive job에게 적절한 response 제공 요망 -CPU의 I/O 장치 등 시스템 자원을 골고루 효율적으로 사용 프로세스으의 특성 분류 프로세스는 그 특성에 따라 다음 두 가지로 나눔 📍I/O-bound process -CPU를 잡고 계산하는 시간보다 I/O에 많은 시간이 필요한 job -many short CPU bursts 📍CPU-bound process 계산 위주의 job -few very long CPU bursts CPU Scheduler & Dispatcher CPU Scheduler Ready 상태의 프로세스 중에서 이번에 CPU를 줄 프로세스를 고른다 D..

[운영체제] 프로세스 관리(2)

스케줄러 (Scheduler) 1. Long-term scheduler(장기 스케줄러 or job scheduler) 시작 프로세스 중 어떤 것들을 ready queue로 보낼지 결정 프로세스에 memory(및 각종 자원)을 주는 문제 degree of Multiprogramming을 제어 time sharing system에는 보통 장기 스케줄러가 없음 (무조건 ready) 2. Short-term scheduler(단기 스케줄러 or CPU scheduler) 어떤 프로세스를 다음번에 running시킬지 결정 프로세스에 CPU를 주는 문제 충분히 빨라야 함(millisecond 단위) 3. Medium-Term Scheduler(중기 스케줄러 or Swapper) 여유 공간 마련을 위해 프로세스를 통..

[운영체제] 프로세스 관리 (1)

프로그램의 실행(메모리 load) process의 virtual memory의 주소 공간과 커널의 주소 공간은 code, data, stack으로 이루어져 있음 커널 주소 공간의 내용 사용자 프로그램이 사용하는 함수 ✓함수(function) 1. 사용자 정의 함수 자신이 프로그램에서 정의한 함수 2. 라이브러리 함수 자신의 프로그램에서 정의하지 않고 갖다 쓴 함수 자신의 프로그램의 실행 파일에 포함되어 있다 3. 커널 함수 운영체제 프로그램의 함수 커널 함수의 호출=시스템 콜 Mode bit=1 -> 사용자 모드 Mode bit=0 -> 모니터 모드=커널 모드=시스템 모드 프로세스의 개념 "Process is a program in execution" 프로세스의 문맥(context) -CPU 수행 상태를..

[운영체제] 컴퓨터 시스템의 구조(2)

📍인터럽트(Interrupt) 인터럽트 당한 시점의 레지스터와 program counter를 save한 후 CPU의 제어를 인터럽트 처리 루틴에 넘긴다 Interrupt(하드웨어 인터럽트): 하드웨어가 발생시킨 인터럽트 Trap(소프트웨어 인터럽트) -Exception: 프로그램이 오류를 범한 경우 -System call: 프로그램이 커널 함수를 호출하는 경우 Ex. -프로그램이 실행되다가 디스크에서 파일을 읽어와야 한다면 I/O작업은 특권명령이기 때문에 프로그램은 운영체제에 system call을 함 운영체제는 disc controller에 파일을 읽으라고 요청 -> 이 작업은 오래 걸리므로 다른 프로그램에게 먼저 cpu 넘김. disc controller가 파일을 다 읽으면 cpu에 interrupt..

[운영체제] 컴퓨터 시스템의 구조(1)

운영체제의 분류 동시 작업 가능 여부 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, NT server 처리 방식 1. 일괄 처리(batch processing) -작업 요청의 일정량 모아서 한꺼번에 처리 -작업이 완전 종료될 때까지 기다려야 함 ..