Web ServerHTTP 요청을 받아서 Client에게 HTML 문서와 같은 웹 리소스를 전달하는 역할을 한다. Client로부터 콘텐츠를 받는 것도 웹 서버 기능 중 하나다.Web Server 종류: Apache, IIS, nginx, GWS 등Web Application ServerServer에서 웹 어플리케이션을 동작할 수 있도록 지원한다. HTTP 요청을 받으면 데이터베이스에 접근하거나 요청을 처리한다. 아래는 Web Application Server의 3가지 기능이다.프로그램 실행 환경과 데이터베이스 접속 기능을 제공여러 개의 트랜잭션을 관리업무를 처리하는 비즈니스 로직 수행Web Server와 Web Application Server의 차이Web Server는 정적 데이터를 처리하고, Web..
Union-Find 자료구조는 Disjoint Set이라고도 불리는데, 이 자료구조는 Dijkstra Algorithm, Kruskal Algorithm 등 여러 그래프 알고리즘에서 사용된다. Union-Find 자료구조는 집합을 관리하는 자료구조로 사용된다. Union-Find 자료구조는 Union과 Find 두 개의 연산을 지원하며 아래와 같다. * Union: 요소 A가 속한 집합과 요소 B가 속한 집합을 병합한다. * Find: 요소 A가 주어졌을 때, 이 요소가 속한 집합을 반환한다. 1. 배열로 구현 Array[i] : i 번 원소가 속하는 집합의 번호라고 할 때 연산은 아래와 같다. * Initialize: 배열을 각자 다른 집합 번호로 초기화 한다. * Union: 두 집합 A, B를 합치..
협력적(cooperating) process는 시스템 내에서 실행 중인 다른 process의 실행에 영향을 주거나 영향을 받는 process이다. 공유 데이터를 사용하는 process(예를 들면 thread)들이 공유 데이터에 동시에 접근한다면, 공유 데이터는 일관성을 유지할 수 없을 것이다. 이를 해결하기 위한 다양한 메커니즘이 있다. 1. Background동기화가 필요한 상황을 살펴보기 위해 생산자-소비자 문제를 예로 들자. 생산자와 소비자 코드는 아래와 같다. * Producer code item nextProduced; while( true ) { /* Produce an item and store it in nextProduced */ nextProduced = makeNewItem( . . ..
Real-time system은 task 처리에 걸리는 시간을 일관되게 유지할 수 있냐가 중요한 성능의 척도이다. Real-time system의 목표는 실시간 성능 보장에 있다. * Soft real-time systems: task 처리 시간이 달라지면 성능이 감소하는 경우 (streaming video 등) * Hard real-time systems: task 처리 시간이 달라지면 실패하는 경우 (자동차의 air-bag 등) 1. Minimizing LatencyReal-time system은 사건-중심의 특성을 가지고 있어서, 일이 발생하면 빠르게 처리되어야 한다. 따라서 Latency를 최소화 해야한다.Event Latency는 event가 발생하고 system이 응답하기까지의 시간이다. 아래..
이전 글인 Scheduling Algorithms에서 process scheduler를 다뤘다. process scheduler는 오직 kernel thread의 scheduling을 다룬다. 이번 글은 user thread가 어떻게 thread 라이브러리에 의해 kernel thread에 사상(mapping)되는지 살펴볼 것이다. (무슨 말인지 모르겠다면 Multi Thread Programming 글의 Multithreading Models 항목을 보자) 1. Contention ScopeMany-to-One, Many-to-Many 모델을 구현하는 시스템에서는 동일한 process에 속한 user thread들끼리 CPU를 경쟁하기 때문에 Process-Contention Scope(PCS)가 발생..
CPU scheduling은 short-term scheduler가 ready queue에 존재하는 process 중 어느 process에게 CPU를 할당할 것인지를 결정하는 문제를 다룬다. 이 과정은 process scheduler 또는 dispatcher에 의해 수행된다. 1. First-Come, First-Served Scheduling (FCFS)CPU를 먼저 요청하는 process가 CPU를 먼저 할당받는 scheduler이다. 따라서 선입선출(FIFO) queue로 쉽게 관리할 수 있다. FCFS Scheduling은 non-preemptive scheduler이기 때문에 시분할 시스템(대화형 시스템)에서는 사용하지 못한다.선입선처리 방식이기 때문에 구현하기는 쉽지만, process의 평균 ..
1. 기본 개념다중 프로그래밍의 목적은 CPU 이용률을 최대화하기 위해 항상 실행 중인 프로세스가 존재하도록 하는 것이다. 다중 프로그래밍을 달성하기 위해선 process를 CPU에 할당하는 작업인 Scheduling이 필수이다. 사실 process가 아니라 kernel thread를 scheduling 하는 것인데, 일반적으로 process scheduling과 thread scheduling은 같다고 여겨진다. 2. CPU-I/O burst cycleCPU가 수행되는 구간을 CPU burst, I/O때문에 block되는 구간을 I/O burst라고 한다. 아래 그림 1처럼, process는 CPU burst와 I/O burst의 cycle로 구성된다. CPU burst 크기가 크면 CPU intens..
1. 선택 정렬 (Selection Sort) n개의 요소를 가지고 있는 배열을 돌며, 가장 작은 요소의 인덱스를 찾아서 타겟 인덱스의 요소와 바꿔줌. n-1, n-2, ... , 1 까지 반복하므로 시간 복잡도 O(n^2), 배열 하나 써서 공간 복잡도 O(n) int arr[] = { 6, 5, 3, 1, 8, 7, 2, 4 }; for(int i = 0; i arr[j]) min_idx = j; } int temp = arr[min_idx]; arr[min_idx] = arr[i]..
- Total
- Today
- Yesterday
- JavaScript
- thymeleaf cannot resolve
- unity
- Bean
- @Autowired
- Check point within polygon
- spring
- Barycentric coordinates
- @Qualifier
- @Component
- Express
- Linux
- thymeleaf 변수 인식
- chunk
- spring batch
- 클로저
- Closure
- @Bean
- npm
- MySQL
- mybatis
- Bin
- Tasklet
- nodejs
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |