백준 1652 누울 자리를 찾아라
·
독서/알고리즘
import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine().trim()); int[][] map = new int[n][]; for (int i = 0; i < n; i++) { map[i] = Arrays.stream(br.readLine().trim().split(..
백준 1013 Contact
·
독서/알고리즘
import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { private static final String FIND_REG = "(100+1+|01)+"; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int t = Integer.parseInt(br.readLine().trim()); for (int i = 0; i < t; i++) { if (br.readLine().trim().matches(FIND_REG)) { Sy..
응용 계층
·
독서/네트워크
개념과 구조 응용 계층에 존재하는 응용 프로그램은 다음 두 가지 형태로 존재하며 각각의 특징은 다음과 같다. Client-server 구조 서버의 특징 항상 실행되고 있다. 영구적으로 할당된 IP를 가짐 확장을 위한 데이터 센터가 존재 클라이언트의 특징 서버와 통신 클라이언트간의 직접적인 통신을 하지 않음 간혈적인 연결 (연결과 끊김이 반복적이고 규칙적이지 않다.) 대부분 동적 IP를 사용 Peer-to-peer 구조 항상 켜져있는 서버가 존재하지 않음 임의의 클라이언트와 직접적인 통신 Peer는 클라이언트이자 서버의 역할을 한다. 데이터를 수신하고 때로는 제공하는 임무를 가진다. 따라서 Peer가 증가하면 성능적인 확장성이 가능하다. Peer는 간혈적인 연결 상태를 가지며, IP 주소가 변경이 가능하다..
백준 9375 패션왕 신혜민
·
독서/알고리즘
import java.io.BufferedReader import java.io.InputStreamReader import java.util.* class FashionKing { private val hash = HashMap() fun addDress(type: String, name: String) { if (!hash.containsKey(type)) { hash[type] = Vector() } hash[type]!!.add(name) } fun getDressNum(): Int { return hash.keys.sumOf { hash[it]!!.size } } fun solve(): Int = hash.keys .map { hash[it]!!.size } .fold(1) { acc: Int,..
🖥 가상 메모리 관리
·
독서/운영체제
가상 메모리는 비연속 할당된 메모리 영역에 블록 단위로 사용자 프로그램을 자르고, 잘려진 블록 단위들은 가상 메모리 시스템에 따라서 적절한 위치와 크기로 적재/실행한다. 이제 가상 메모리 시스템을 적절한 모델을 기반하여 다양한 최적화 기법을 학습해보자. Cost model for Virtual Memory. 가상 메모리 접근할 때 적재되지 않은 메모리에 접근할 때 Page fault 발생 시 프로세스는 실행 상태에서 대기 상태로 이동하면서 Context switching 및 커널 개입이 발생하여 큰 비용이 발생한다. 따라서 가상 메모리 최적화에 적용할 Cost model은 Page fault frequency(발생 빈도)와 Page fault rate(발생률)를 기준으로 발생 빈도/률을 최소화 할 수 있..
🖥 메모리 관리
·
독서/운영체제
지금까지 우리는 운영체제가 관리하는 중요한 대상인 프로세스에 대해 공부했다. 이번 장에서는 운영체제가 중요하게 관리하는 대상인 메모리에 대해서 공부하게 된다. 배경 지식 메모리 할당 연속된 메모리 할당 연속된 메모리 할당(Continuous memory allocation)은 우리가 실행한 프로그램, 즉 프로세스를 하나의 연속된 메모리에 배치되도록 하는 방법이다. 따라서 메모리에 올라갈 수 있는 프로세스의 수, 각 프로세스에게 할당되는 메모리 공간 크기, 메모리 분할 방법등의 메모리 구성 정책이 필요하다. Uni-programming 연속된 메모리 할당에선 메모리에 올라갈 수 있는 프로세스의 수에 따라서 크게 Uni-programming/Multi-programming으로 나눌 수 있다. 그 중 Uni-..