일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Application Event
- 백트래킹
- 브루트포스
- JsonSerializer
- 스프링부트
- Spring Security
- 외부설정
- 스프링 부트
- 알고리즘
- @ConfigurationProperties
- 정적 리소스
- rest api
- cors
- WebApplication Type
- OAuth2
- Application Argument
- webjar
- Application Runner
- EnableAutoConfiguration
- AuthenticationPrincipal
- 리소스 서버
- 백준
- 다익스트라
- @Profile
- 리소스핸들러
- HATEOAS
- JPA
- HttpMessageConverters
- 백기선
- application.properties
- Today
- Total
목록운영체제 (8)
아카이브
- 기억 장치의 빈 공간 또는 자료가 여러 개의 조각으로 나뉘는 현상- RAM에서 공간이 작은 조각으로 나뉘어져 사용가능한 메모리가 충분히 존재하지만 할당이 불가능한 상태- 메모리를 할당할 때 프로세스가 필요한 양보다 더 큰 메모리가 할당되어서 프로세스에서 사용하는 메모리 공간이 낭비 되는 현상- 예) OS가 프로세스에 4kb를 할당. 하지만 사실상 1kb만 사용하고 있을 경우 내부 단편화가 3kb만큼 발생- 메모리가 할당 및 해제 작업의 반복으로 작은 메모리가 중간중간에 존재- 중간중간에 생긴 사용하지 않는 메모리가 존재해서 총 메모리 공간은 충분하지만 실제로 할당할 수 없는 상황- 여유 공간이 여러 조각으로 나뉘는 현상- ..
기억장 채 배치 전략 새로 적재되어야 할 프로그램과 데이터를 주기억장치 영역 중 어느 곳에 배치할지를 결정하는 전략(또는 알고리즘)이다. 종류 최초 적합(first-fit) 주기억 장치의 사용 가능한 공간을 검색하여 첫 번째로 찾아낸 곳을 할당하는 방식 지난번 검색이 끝난 곳에서 시작한다 충분한 공간을 찾으면 끝낸다 가장 간단하며, 대부분의 경우 최적이며 빠르다 최적 적합(best-fit) 사용 가능한 공간들 중에서 가장 작은 것을 선택하는 방식 가용 공간들에 대한 목록이 그 공간들의 크기 순서대로 정렬되어 있지 않다면, 최적인 곳을 찾기 위해 전체를 검색해야 한다. 외부 단편화를 초래하며, 메모리 집약 횟수도 증가시킨다. 최악 적합(worst-fit) 사용 가능한 공간들 중에서 가장 큰 것을 선택하는 ..
- 교착 상태- 한정된 자원을 여러 곳에서 사용 -> 둘 이상의 프로그램이 함께 멈추어 버리는 현상- 어떤 프로세스가 자원을 요청했을때 그 자원을 사용할 수 없고, 프로세스가 대기 상태로 진입- 대기 상태로 들어간 프로세스가 실행을 할 수 없을 경우1. 상호 배제 (Mutual exclusion)- 자원 자체를 동시에 쓸 수 없는 경우2. 점유 상태로 대기 (Hold and wait)- 프로세스가 할당된 자원을 가진 상태에서 다른 자원을 기다리는 상태.- 예를 들면 Skype가 마이크와 카메라를 써야 하는데 마이크는 땡겨오는데 성공했지만 카메라 앱이 카메라를 잡고 있어서 그걸 기다리고 있고, 이 때문에 애꿎은 녹음기도 마이크를 못 쓰게 되는 상황3. 선점 불가 (No preemption)- 다른 프로세스..
메모리 계층 구조 - 데이터를 임시로 저장하는 장소.- 데이터의 지역성이나 접근 비율이 많은 경우 캐시에 데이터를 임시 저장하여 데이터를 빠르게 제공하는 것이 목적.- RAM보다 빠른 L1, L2 캐시가 있고 CPU의 REGISTER와 중간에서 캐시 역할을 함.- 공간 지역성 : 데이터 참조 시 근처에 있는 가까운 데이터가 참조된다.- 시간 지역성 : 읽은 데이터가 빠른 시일 내에 또 참조된다. - 데이터를 요청- if(cache에 존재) cache에서 데이터를 가져옴- else 실제 저장공간에서 데이터를 가져옴- cache에 데이터를 임시 저장 - cache hit : 참조하려는 데이터가 캐시에 존재할 때 - cache miss : 참조하려는 데이터가 ..
CPU 스케줄링 : 메모리에 있는 Ready상태의 프로세스 중 하나를 선택해 CPU 자원을 할당하는 것. 결정 시점 : Running -> Waiting Running -> Ready Waiting -> Ready Running -> Terminated - 비선점형 스케줄링(Non-preemptive Scheduling)- 프로세스가 CPU를 할당 받으면 종료되거나 입출력 요청으로 자발적으로 중지될 때까지 계속 실행되도록 보장한다.- 순서대로 처리되는 공정성이 있고, 스케줄러 호출 빈도가 낮고, 문맥 교환에 의한 오버헤드가 적다.- 일괄 처리에 적합- 처리 시간이 긴 프로세스가 실행 중일때, 처리 시간이 짧은 프로세스들을 오랫동안 대기시킬 수 있으므로, 처리율이 떨어질 수 있다는 단점이 존재. (Conv..
동시성(Concurrency) - 싱글 코어에서 멀티 스레드를 동작시키기 위한 방식- 멀티 태스킹을 위해 여러 개의 스레드가 번갈아가며 실행된다.- 병렬 실행으로 보이나, 번갈아가며 조금씩 실행되는 것. 병렬성(Parallelism)- 멀티 코어에서 멀티 스레드를 동작시키기 위한 방식- 한 개 이상의 스레드를 포함하는 각 코어들이 동시에 실행된다.- 데이터 병렬성(Data parallelism)과 작업 병렬성(Task parallelism)으로 구분된다. - 데이터 병렬성(Data parallelism) : 전체 데이터를 멀티 코어의 수만큼 쪼개서 각 데이터들을 분리된 스레드에서 병렬 처리ex) 자바8의 병렬 스트림.- 작업 병렬성(Task parallelism) : 서로 다른 작업들을 병렬 처리ex) ..
문맥 교환(Context Switch)- 하나의 프로세스가 CPU를 사용 중인 상태에서 다른 프로세스가 CPU를 사용하도록 하기 위해, 이전의 프로세스의 상태(문맥)를 보관하고 새로운 프로세스의 상태를 적재하는 작업.- 한 프로세스의 문맥은 그 프로세스의 PCB(Process Control Block)에 기록되어 있다.- 현재 실행중인 프로세스에 문맥교환 요청이 있으면-> 우선 프로세스의 제어가 OS모드로 전환되면서 프로세스 종료-> 현재 상태를 PCB에 저장하고-> 다음 프로세스의 PCB로부터 데이터를 가져와서 CPU에 저장하고 실행 - 문맥 교환시 CPU는 Block상태이다. (문맥 교환 시간은 순수한 오버헤드)
- 어떤 작업을 위해 실행할 수 있는 "파일" - 메모리에 올라와 CPU를 할당받고 프로그램이 실행되고 있는 상태 (실행된 프로그램)- OS로부터 자원을 할당받는 "작업"의 단위- OS로부터 프로세서를 할당받고, 운영에 필요한 주소 공간과 메모리 등의 자원을 할당받는다.- 실행 중인 프로그램에 대한 Instance를 지칭 - 프로세스가 할당받은 자원을 이용하는 "실행"의 단위- 한 프로세스 내에서 동작하는 여러 실행의 흐름으로, 프로세스 내의 주소 공간이나 자원들을 같은 프로세스 내의 스레드끼리 공유하며 실행된다.- 기본적으로 하나의 프로세스가 생성되면, 하나의 스레드(메인 스레드)가 같이 생성된다. - 스레드를 추가하면? 멀티 스레드- 한 프로세스 내의 여러 스레드는 별도의 자원이 아닌 프로세스 내의 ..