프로세스란?프로세스 : (메모리에 올려져서,) 실행중인 프로그램코드 이미지(바이너리) : 실행 파일응용 프로그램 ≠ 프로세스응용 프로그램은 여러 프로세스로 구성 가능프로세스라는 용어는 작업, task, job 이라는 용어와 혼용ex) 엑셀 프로그램과 엑셀 프로세스excel.exe(코드 이미지, 바이너리)와 엑셀 프로세스해당 파일은 코드로 구현이 되어있을 텐데, CPU가 이해할 수 있는 0과 1로 이루어진 파일로 만들어서 저장(바이너리)이를 실행하면 메모리에 올라감(프로세스)프로세스 스케쥴링프로세스를 언제 실행 시킬 건지1. 배치 처리 시스템(Batch Processing)초기 프로세스 스케쥴링 알고리즘으로 배치 처리 시스템을 채택여러 프로그램을 순차적으로 실행시킬 수 있도록어떤 프로그램은 실행하는데 시간..
개념요소들 중에서 최대/최소값을 찾아 정렬하는 알고리즘입니다.최대값 선택 시 내림차순 정렬을 진행합니다.(최솟값 선택 시 오름차순 정렬) 로직오름차순 정렬을 기준으로 보자면먼저 0~N-1 요소들 중에서 가장 작은 값을 찾고 0번째 인덱스와 교환해줍니다.그다음 정렬된 0번째를 제외한1~N-1 요소 중에서 가장 작은 값을 찾고 1번째 인덱스와 교환해줍니다.이렇게 총 N-2번(마지막 인덱스 탐색 X) 반복하면 정렬이 완료됩니다.추가 메모리 공간이 필요하지 않는 특징이 있습니다. 코드자바로 작성한 선택정렬 코드는 다음과 같습니다.// 선택 정렬: N^2 순회// 오름차순 정렬for (int i = 0; i arr[j]){ minVal = arr[j]; minIdx = j..
개념정렬을 진행할 원소의 index(a)보다 작은 곳(0~a-1)에 있는 원소들을 탐색하고알맞은 위치에 삽입하여 정렬하는 알고리즘입니다.구현이 간단하다는 특징이 있습니다. 로직오름차순 정렬 기준1~N-1번째 인덱스를 순차적으로 key로 두고key-1 ~ 0의 인덱스를 감소순회하면서만약 arr[현재의 값] > key 라면, arr[현재의 값+1] = arr[현재의 값]을 넣어줍니다.그렇지 않다면, 순회를 종료합니다.순회가 끝나고 난 후, arr[마지막 위치 + 1] = key 값으로 갱신합니다. 코드자바로 작성한 삽입정렬 코드는 다음과 같습니다.// 삽입 정렬: N^2 순회int key, j;for (int i = 1; i = 0 ; j --) { if (arr[j] > key) arr[j+1..
개념서로 인접해 있는 요소 간 대소 비교를 통해 정렬하는 알고리즘입니다. 추가적인 메모리 공간이 필요하지 않다는 특징이 있으며 쉽게 구현할 수 있지만 비효율적인 알고리즘입니다. 인접한 원소를 교환하는 모습이 마치 물 속의 거품과 비슷하다고하여 버블 정렬이라고 부른다고 합니다. 로직예시로 오름차순 정렬을 만든다면arr = [1, 7, 2, 4, 5, 6] N-1개의 요소를 순회하며(0 ~ N-2 인덱스)현재 인덱스에 위치한 값이(a) 다음 인덱스에 위치한 값(b) 보다 클 경우 교환해줍니다.이렇게 첫번째 순회를 마치게 되면 결과는다음과 같이 수열 중 가장 큰 수인 7이 맨 오른쪽으로 정렬된 것을 볼 수 있습니다.arr = [1, 2, 4, 5, 6, 7] 해당 예시는 한 번의 정렬만으로 오름차순 정렬이 ..
정렬 알고리즘 종류요소들을 특정 순서대로 재배치하는 것을 정렬이라고 하며 이런 정렬을 하는 알고리즘의 종류에는 대표적으로 버블, 삽입, 선택, 퀵, 병합, 힙 정렬이 있습니다. 알고리즘 별 시간 복잡도를 먼저 말씀드리자면 다음과 같습니다. 버블, 삽입, 선택: O(N^2)퀵, 병합, 힙: O(N logN) 버블 정렬서로 인접해 있는 요소 간 대소 비교를 통해 정렬하는 알고리즘입니다.추가적인 메모리 공간이 필요하지 않다는 특징이 있으며쉽게 구현할 수 있지만 비효율적인 알고리즘입니다. 인접한 원소를 교환하는 모습이 마치물 속의 거품과 비슷하다고하여 버블 정렬이라고 부른다고 합니다. 시간 복잡도: O(N^2) 버블 정렬에 로직에 대한 자세한 설명 및 코드는 아래의 링크에 있습니다. 버블 정렬(Bubble So..
최소 스패닝 트리 개념그래프 내의 모든 정점을 포함하는 트리를 스패닝 트리라고 하는데이러한 스패닝 트리 중에서 사용된 간선들의 가중치 합이 최소인 트리를 최소 스패닝 트리라고 합니다. 특징1. 간선의 가중치 합이 최소2. n개의 정점을 가지는 그래프에 대해 반드시 n-1개의 간선만을 사용해야 함3. 사이클이 없어야 함 최소 스패닝 트리 관련 알고리즘최소 스패닝 트리르 구하는 알고리즘에는 대표적으로 크루스칼과 프림이 있습니다. 크루스칼그리디하게 모든 정점들을 최소 비용으로 연결해서 구하는 간선 선택 기반의 크루스칼 알고리즘은가중치 값을 기준으로 오름차순 정렬하고 유니온파인드를 사용해서 사이클을 확인하는 것이 핵심입니다.시간 복잡도는 O(ElogE) 입니다. 다음은 크루스칼 알고리즘을 자바로 구현한 코드입니..
TCP/IP 4계층 모델링크 - 인터넷 - 전송 - 애플리케이션 계층OSI 7계층(물리 - 데이터링크 - 네트워크 - 전송 - 세션 - 표현 - 애플리케이션) 각각의 계층은 독립적으로 설계되었음(특정 계층이 변경되어도 영향을 받지 않음)예) TCP를 UDP로 변경했다고 해서 다시 브라우저를 설치하지 않아도 됨 애플리케이션 계층사용자와 직접 맞닿는 응용프로그램이 사용되는 계층HTTP(웹 데이터 통신)/ FTP(장치간 파일전송) / SMTP(전자메일전송) / SSH(보안) / DNS(도메인네임 to IP)가 있음 DNS도메인네임을 IP주소로 매핑해주는 서버1. www.naver.com에 DNS 쿼리가 오면(사용자가 검색하면)2. .com DNS를 찾고 .naver를 찾고 .www DNS를 찾으며 완벽한 ..