Skip to content

Commit

Permalink
오타수정
Browse files Browse the repository at this point in the history
  • Loading branch information
cheese10yun committed May 17, 2019
1 parent ab48712 commit a1be422
Show file tree
Hide file tree
Showing 10 changed files with 59 additions and 59 deletions.
2 changes: 1 addition & 1 deletion AWS/AWS-Service.md
Original file line number Diff line number Diff line change
Expand Up @@ -172,4 +172,4 @@ CloudWatch의 경고 기능은 AWS 상의 각종 리스스에 대한 지표를
CloudWatch Logs에는 로그 수집과 모니터링이라는 두 가지 기능이 있습니다. 먼저 로그 수집은 EC2 인스턴스나 Elastic Beanstalk 등의 로그를 S3에 저장합니다. 인스턴스의 경우 전용 에이전트를 설치합니다.

### CloudWatch Events의 로그 기둥
CloudWatch Events는 이벤트를 감지하고 지정된 규칙에 따라 처리하는 서비스입니다. 규칙에는 5분 간격이나 특정 일시 등의 스케줄, DnamoDB 테이블의 생성 삭제 등 AWS 리소스에 발생한 변경을 지정하는 것이 가능합니다.
CloudWatch Events는 이벤트를 감지하고 지정된 규칙에 따라 처리하는 서비스입니다. 규칙에는 5분 간격이나 특정 일시 등의 스케쥴, DnamoDB 테이블의 생성 삭제 등 AWS 리소스에 발생한 변경을 지정하는 것이 가능합니다.
4 changes: 2 additions & 2 deletions AWS/AWS-서비스-패턴-정리.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
- [Scaling 정책/계획](#scaling-%EC%A0%95%EC%B1%85%EA%B3%84%ED%9A%8D)
- [수동 스케일](#%EC%88%98%EB%8F%99-%EC%8A%A4%EC%BC%80%EC%9D%BC)
- [자동 스케일링](#%EC%9E%90%EB%8F%99-%EC%8A%A4%EC%BC%80%EC%9D%BC%EB%A7%81)
- [스케줄 기반](#%EC%8A%A4%EC%BC%80%EC%A4%84-%EA%B8%B0%EB%B0%98)
- [스케쥴 기반](#%EC%8A%A4%EC%BC%80%EC%A4%84-%EA%B8%B0%EB%B0%98)
- [규칙 기반](#%EA%B7%9C%EC%B9%99-%EA%B8%B0%EB%B0%98)
- [인 메모리 캐시 패턴](#%EC%9D%B8-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EC%BA%90%EC%8B%9C-%ED%8C%A8%ED%84%B4)
- [인프라 구축 자동화](#%EC%9D%B8%ED%94%84%EB%9D%BC-%EA%B5%AC%EC%B6%95-%EC%9E%90%EB%8F%99%ED%99%94)
Expand Down Expand Up @@ -78,7 +78,7 @@ Auto Scaling은 서버의 이용 상황에 따라 자동으로 서버의 수를
#### 자동 스케일링
최소 대수를 희망 대수 값과 동일하게 설정해 초기의 인스턴스 대수를 유지하는 방식입니다. Auto Scaling 그룹 인스턴스에 뭔가 문제가 발생하고 유요한 인스턴스의 수가 줄었을 때 자동으로 인스턴스가 구축되는, 최소한으로 필요한 인스턴스 대수를 유지하는 방식입니다.

#### 스케줄 기반
#### 스케쥴 기반
설저한 시간에 맞춰 서버 대수를 증감시키는 방식 18 시부터 22시 까지 요청이 많은 서비스에 대해서 17:55에 인스턴스를 8대로 한다. 등 같은 피크 시간이 왔다 갔다 하거나 인스턴스를 시작하는데 시간이 걸리는 것을 고려해서 시간을 결정해야 합니다.

#### 규칙 기반
Expand Down
8 changes: 4 additions & 4 deletions Database/관계형_데이터베이스_실전_입문.md
Original file line number Diff line number Diff line change
Expand Up @@ -325,15 +325,15 @@ ACID에 있어 일관성이란 트랜잭션을 실시한 전후에는 데이터

### 갱신 분실

## 스케줄과 잠금
앞서 언급한 비정상 상태는 모두 동시성 문제다. 각 처리를 순서대로 수행하면 문제가 발생하지 않는다. 스케줄이라는 관점에서 보면 앞에서 언급한 비정상 상태가 발생하는 스케줄은 원래 실행하면 안되는 것이다. **따라서 스케줄이 발생하지 않도록 트랜잭션의 스케줄을 결정해야 한다.**
## 스케쥴과 잠금
앞서 언급한 비정상 상태는 모두 동시성 문제다. 각 처리를 순서대로 수행하면 문제가 발생하지 않는다. 스케쥴이라는 관점에서 보면 앞에서 언급한 비정상 상태가 발생하는 스케쥴은 원래 실행하면 안되는 것이다. **따라서 스케쥴이 발생하지 않도록 트랜잭션의 스케쥴을 결정해야 한다.**

쿼리의 실행에 따라 트랜잭션 내에 데이터의 일관성이 무너지지 않도록 작업 대상이 되는행에 대해 그 작업이 수행되기 전에 잠금을 거는 방법이 사용되고 있다.

## 교착 상태
트랜잭션이 필요로 하는 데이터 항목을 순서대로 작ㅁ그는 아키텍처는 교착 상태라는 문제가 있다. RDB는 행 수준의 잠금 혹은 페이지 수준의 잠금으로 구현돼 이으며 이러한 현상이 이 일어난다.

교착 상태가 발생했다는 것은 만약에 잠금을 하지 않고 그대로 처리했다면 데이터의 부정합이 일어난다는 의미다.이런 스케줄은 허용할 수 없으므로 교착 상태에 빠진 트랜잭션은 롤백 해야한다.
교착 상태가 발생했다는 것은 만약에 잠금을 하지 않고 그대로 처리했다면 데이터의 부정합이 일어난다는 의미다.이런 스케쥴은 허용할 수 없으므로 교착 상태에 빠진 트랜잭션은 롤백 해야한다.

## 트랜잭션 격리 수준

Expand All @@ -344,7 +344,7 @@ ACID에 있어 일관성이란 트랜잭션을 실시한 전후에는 데이터
| REPEATABLE-READ | X | X | O | O |
| SERIALIZABLE | X | X | X | X |

SERIALIZABLE가 가장 격리성이 높고 트랜잭션을 실행한 결과가 직렬화된 스케줄과 같은 결과를 보장한다. 하지만 격리 수준이 높을 수록 성능에 대해서 낮은 경향이 있기 때문에 신중하게 선택해야한다.
SERIALIZABLE가 가장 격리성이 높고 트랜잭션을 실행한 결과가 직렬화된 스케쥴과 같은 결과를 보장한다. 하지만 격리 수준이 높을 수록 성능에 대해서 낮은 경향이 있기 때문에 신중하게 선택해야한다.

## 제약을 활용

Expand Down
4 changes: 2 additions & 2 deletions JAVA/thread.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
- [멀티 스레드, 싱글 스레드](#%EB%A9%80%ED%8B%B0-%EC%8A%A4%EB%A0%88%EB%93%9C-%EC%8B%B1%EA%B8%80-%EC%8A%A4%EB%A0%88%EB%93%9C)
- [스레드 우선 순위](#%EC%8A%A4%EB%A0%88%EB%93%9C-%EC%9A%B0%EC%84%A0-%EC%88%9C%EC%9C%84)
- [동시성과 병렬성](#%EB%8F%99%EC%8B%9C%EC%84%B1%EA%B3%BC-%EB%B3%91%EB%A0%AC%EC%84%B1)
- [스레드 스케줄링](#%EC%8A%A4%EB%A0%88%EB%93%9C-%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81)
- [스레드 스케쥴링](#%EC%8A%A4%EB%A0%88%EB%93%9C-%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81)
- [우선 순위](#%EC%9A%B0%EC%84%A0-%EC%88%9C%EC%9C%84)
- [동기화 메서드와 동기화 블록](#%EB%8F%99%EA%B8%B0%ED%99%94-%EB%A9%94%EC%84%9C%EB%93%9C%EC%99%80-%EB%8F%99%EA%B8%B0%ED%99%94-%EB%B8%94%EB%A1%9D)
- [공유 객체를 사용할 때 중의 할 점](#%EA%B3%B5%EC%9C%A0-%EA%B0%9D%EC%B2%B4%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%A0-%EB%95%8C-%EC%A4%91%EC%9D%98-%ED%95%A0-%EC%A0%90)
Expand Down Expand Up @@ -61,7 +61,7 @@
* 병렬성(Parallelism)
* 멀티 작업을 위해 멀티 코어에서 개별 스레드를 동시에 실행하는 성질

## 스레드 스케줄링
## 스레드 스케쥴링

![](/draw/thead-shduler.png)

Expand Down
2 changes: 1 addition & 1 deletion JAVA/람다식-기초.md
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,7 @@ List<Member> members = list.stream()
* HashSet, TreeSet은 요서를 분리하기가 쉽지 않고, LinkedList는 랜덤 엑세스를 지원하지 않아 링크를 따라가야 하므로 역시 요소를 분리하기가 쉽지않다. 따라서 이들 소스들은 ArrayList 배열 보다는 상대적으로 병럴 처리가 늦다.
* 코어의수
* 싱글코어 CPU일 경우에는 순차 처리가 빠르다.
* 병렬 처리를 할 경우 스레드 수만 증가하고 번갈아 가면서 스케줄링을 해야하므로 좋지 못한 결과를 준다.
* 병렬 처리를 할 경우 스레드 수만 증가하고 번갈아 가면서 스케쥴링을 해야하므로 좋지 못한 결과를 준다.
* 코어의 수가 많으면 많을 수록 병렬 작업 처리는 속도는 빨라진다.

# 출처
Expand Down
36 changes: 18 additions & 18 deletions OS/basic.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@
- [멀티 프로그래밍](#%EB%A9%80%ED%8B%B0-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D)
- [멀티 프로그래밍](#%EB%A9%80%ED%8B%B0-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-1)
- [정리](#%EC%A0%95%EB%A6%AC)
- [스케줄러 알고리즘](#%EC%8A%A4%EC%BC%80%EC%A4%84%EB%9F%AC-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98)
- [스케쥴러 알고리즘](#%EC%8A%A4%EC%BC%80%EC%A4%84%EB%9F%AC-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98)
- [프로세스란 ?](#%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EB%9E%80)
- [스케줄러와 프로세스](#%EC%8A%A4%EC%BC%80%EC%A4%84%EB%9F%AC%EC%99%80-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4)
- [스케쥴러와 프로세스](#%EC%8A%A4%EC%BC%80%EC%A4%84%EB%9F%AC%EC%99%80-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4)
- [스케쥴링 알고리즘](#%EC%8A%A4%EC%BC%80%EC%A5%B4%EB%A7%81-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98)
- [최단 작업 우선(SJF) 스케줄러](#%EC%B5%9C%EB%8B%A8-%EC%9E%91%EC%97%85-%EC%9A%B0%EC%84%A0sjf-%EC%8A%A4%EC%BC%80%EC%A4%84%EB%9F%AC)
- [최단 작업 우선(SJF) 스케쥴러](#%EC%B5%9C%EB%8B%A8-%EC%9E%91%EC%97%85-%EC%9A%B0%EC%84%A0sjf-%EC%8A%A4%EC%BC%80%EC%A4%84%EB%9F%AC)
- [우선순위 기반 스케쥴러](#%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84-%EA%B8%B0%EB%B0%98-%EC%8A%A4%EC%BC%80%EC%A5%B4%EB%9F%AC)
- [Round Robin 스케줄러](#round-robin-%EC%8A%A4%EC%BC%80%EC%A4%84%EB%9F%AC)
- [Round Robin 스케쥴러](#round-robin-%EC%8A%A4%EC%BC%80%EC%A4%84%EB%9F%AC)
- [정리](#%EC%A0%95%EB%A6%AC-1)
- [프로세스 상태](#%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-%EC%83%81%ED%83%9C)
- [프로세스 상태간 관계](#%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-%EC%83%81%ED%83%9C%EA%B0%84-%EA%B4%80%EA%B3%84)
Expand Down Expand Up @@ -139,7 +139,7 @@
* 멀티 프로그래밍 : 최대한 CPU를 일정 시간당 많이 활용하는 시스템


# 스케줄러 알고리즘
# 스케쥴러 알고리즘
## 프로세스란 ?

![](https://gmlwjd9405.github.io/images/os-process-and-thread/process.png)
Expand All @@ -153,33 +153,33 @@
* 각 프로세스는 별도의 주소 공간에 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근할 수 없다.
* 프로세스 간의 자원을 공유를 하기 위해서는 IPC(InterProcess Communication) 기법을 이용해야한다.

## 스케줄러와 프로세스
* 프로세스 실행을 관리하는 것이 스케줄러
## 스케쥴러와 프로세스
* 프로세스 실행을 관리하는 것이 스케쥴러

## 스케쥴링 알고리즘
* 목표
* 시분할 시스템 예: 프로세스 응답 시간을 가능한 짧게
* 멀티 프로그래밍 예: CPU 활용도를 최대로 높혀서, 프로세스를 빨리 실행

## 최단 작업 우선(SJF) 스케줄러
* SJF 스케줄러
## 최단 작업 우선(SJF) 스케쥴러
* SJF 스케쥴러
* 가장 프로세스 실행 시간이 짧은 프로세스 부터 먼저 실행 시키는 알고리즘

## 우선순위 기반 스케쥴러
* priority-based 스케줄러
* priority-based 스케쥴러
* 정적 우선순위
* 프로세스마다 우선순위를 미리 지정
* 동적 우선순위 : 스케줄러가 상황에 따라 우선순위를 동적으로 변경
* 동적 우선순위 : 스케쥴러가 상황에 따라 우선순위를 동적으로 변경

## Round Robin 스케줄러
## Round Robin 스케쥴러
* 큐에 쌓아 놓고 일정 시간이 지나면 다시 대기 큐로 돌려 보낸다. 그 뒤에 있는 작업을 진행한다.

## 정리
* FIFO 스케줄링 알고리즘 : 배치 시스템
* 최단 작업 우선 스케줄링 알고리즘
* 우선순위 기반 스케줄링 알고리즘
* FIFO 스케쥴링 알고리즘 : 배치 시스템
* 최단 작업 우선 스케쥴링 알고리즘
* 우선순위 기반 스케쥴링 알고리즘
* 정적 순위, 동적 우선 순위
* Round Robin 스케줄링 알고리즘
* Round Robin 스케쥴링 알고리즘
* 시분할 시스템 기반


Expand Down Expand Up @@ -249,7 +249,7 @@
* 프로세스 정보 상티
* PC, SP : 컨텍스트 스위칭
* 메모리
* 스케줄링
* 스케쥴링


## 컨텍스트 스위칭 개념 정리
Expand Down Expand Up @@ -365,7 +365,7 @@
* 스레드 중 한 스레드만 문제가 있어도, 전체 프로세스가 영향을 받음
* 스레드를 많이 생성하면, Context Switching이 많이 일어나, 성능 저하
* 리눅스에서는 Thread를 Process와 같이 다룸
* 스레드를 많이 생성하면, 모든 스레드를 스케줄링해야 하므로, Context Switching이 빈번하게 발생할 수 있다.
* 스레드를 많이 생성하면, 모든 스레드를 스케쥴링해야 하므로, Context Switching이 빈번하게 발생할 수 있다.

### Thread vs Process
* 프로세스는 독립적, 스레드는 프로세스의 서브넷
Expand Down
Loading

0 comments on commit a1be422

Please sign in to comment.