import java.lang.*; import java.util.*; public class Main { public static final Scanner scanner = new Scanner(System.in); public static final int MAX_SEAT_NUMBER = 1000; public static final int MAX_COLOR_NUMBER = 100; /** * * @param n : 좌석의 수. 좌석은 0~(n-1)번의 번호를 가진다. * @param m : 좌석을 칠한 횟수. * @param paintings : 좌석들을 색칠한 이벤트들의 정보 */ public static void solve(int n, int m, Painting[] paintings) { in..
전체 글
import java.lang.*; import java.util.*; public class Main { public static final Scanner scanner = new Scanner(System.in); public static final int MAX_TABLE_LENGTH = 10000; public static int fillFrequencyTable(int[] data, int n, int[] table) { Listlist = new ArrayList(); for(int i = 0; i < n; i ++){ table[data[i]]++; } int value = 0; for(int i = 0; i < MAX_TABLE_LENGTH; i ++){ if(value < table[i]..
https://computerlove.tistory.com/entry/%EC%9D%B8%ED%84%B0%EB%84%B7-%ED%86%B5%EC%8B%A0 인터넷 통신 인터넷에서 컴퓨터 둘은 어떻게 통신할까? 클라이언트 서버 이런식으로 통신하게 되는데... 그런데 중간에 인터넷이 들어가게되면? 조금 복잡해진다. 예를 들어서 나는 한국에 사는데 내가 computerlove.tistory.com 한국에 있는 내가 미국에 있는 친구에게 "Hello, world!"라는 메세지를 보내야 한다. 뭔가 최소한의 규칙이 있어야 한다!.. IP 주소라는 것을 통해 가능해진다. 먼저 클라이언트인 내가 주소를 부여받아야 한다. 한국에 있는 나(클라이언트)의 IP : 100.100.100.1 미국에 있는 친구(서버)..
인터넷에서 컴퓨터 둘은 어떻게 통신할까? 클라이언트 서버 이런식으로 통신하게 되는데... 그런데 중간에 인터넷이 들어가게되면? 조금 복잡해진다. 예를 들어서 나는 한국에 사는데 내가 메세지를 보내야 하는 친구는 미국에 산다. 그러면 인터넷 망을 통해서 "Hello, world!" 라는 메세지를 보내야하는 것 그런데 인터넷이 단순하지 않다... 중간에 해저 광케이블이 있을 수도 있고 이 메세지가 인공위성을 통해 내려갈 수도 있는거고, 수 많은 중간 노드 서버들을 거쳐서 메세지가 목적지까지 안전하게 넘어가야 한다. 도대체 어떤 규칙으로 어떻게 넘어갈까? 어떻게 이 수 많은 복잡한 상황을 잘 헤쳐서 목적지 까지 잘 도착하는지는 ?? IP에 대해 학습을 해야 알 수 있다.
Computer는 H/W와 S/W로 구성된다. S/W는 Application과 System S/W로 구분된다. 가장 대표적인 System S/W는 OS(Operation System)이다. 프로그램, 프로세스, 스레드 프로그램은 설치하는 것이다. 설치된 프로그램을 실행하면 프로세스(PID)가 생성된다. 스레드는 프로세스 속에 존재하는 실행(연산)단위이다. 스레드는 프로세스에게 할당된 자원(메모리)을 공유한다. 내 컴퓨터에 실행중인 프로그램 -> 프로세스 프로세스 안에 스레드라는 단위가 있음. 프로세스는 적어도 하나의 스레드를 가진다. 실행의 다른 이름은 연산이다.(메모리도 쓰고 CPU도 쓰고~) 프로세스에게 할당된 자원 -> 메모리 기억공간(메모리)의 구분 HEAP : Process 전체가 쓴다 - 공용..
원자성 소프트웨어 실행의 관점에서, 연산이 단일하고 분할할 수 없을 때 이 연산을 원자적(atomic)이라고 한다. 동기화 lock, unlock을 통해 자원을 점유하고 있어야 한다.(OS가 제공) 신호등과 잠금장치의 필요성과 유지하다. 교착상태(Deadlock) 둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 서로 기다릴 때 무한 대기에 빠지는 상황 교착상태의 발생 조건 1. 상호 배재 한 번에 프로세스 하나만 해당 자원을 사용할 수 있다. 사용 중인 자원을 다른 프로세스가 사용하려면 요청한 자원이 해재될 때까지 기다려야 한다. 2. 점유 대기 자원을 최소한 하나 보유하고, 다른 프로세스에 할당된 자원을 점유하기 위해 대기하는 프로세스가 존재해야 한다. 3. 비 선점 이미 할당된 자원을 강제..