[운영체제] CPU Scheduling
CS/운영체제2022. 4. 4. 12:52[운영체제] CPU Scheduling

✔︎ CPU Scheduling이란 ? CPU를 효율적으로 사용하기 위해 프로세스를 잘 배정하는 것 오버헤드와 기아현상을 줄이고 CPU 사용률을 높이기 위해 사용한다. ✔︎ CPU Scheduling Criteria 시스템 입장에서의 성능 척도 CPU 이용률(Utilization) : CPU를 이용한 수치의 백분율 Throughput : 단위 시간당 완료된 프로세스의 수 사용자 입장에서의 성능 척도 Turnaround Time : CPU를 가져온 후 다 쓰고 나갈 때까지의 시간 (프로세스가 아닌 CPU를 가져온 후 나갈 때 까지의 시간) Response Time : 작업 요청 후 응답이 오는데 걸리는 시간, ready 큐에서 최초의 CPU를 얻기까지의 시간 Waiting Time : 대기 큐에서의 대기 ..

[운영체제] IPC(Inter Process Communication)
CS/운영체제2022. 4. 4. 11:21[운영체제] IPC(Inter Process Communication)

✔︎ IPC(Inter Process Communication)란 ? 독립적 구조를 가진 프로세스 간의 통신을 가능하도록 해주는 것 프로세스가 작업 중 다른 프로세스의 공간을 침범(wirte)해 버린다면 (예를 들어 다른 프로세스의 스택을 건드리는 경우) 문제가 발생한다. 이를 비정상 공유라고 하는데 커널은 이것을 막기 위해 "Protection"을 한다. Protection이란 ? 임의의 프로세스가 다른 프로세스의 주소 공간에 접근하는 것을 금지하는 것이다. 오직 신뢰할 수 있는 커널만이 모든 프로세스의 주소 공간에 접근할 수 있도록 하며 프로세스는 커널이 제공하는 IPC 설비를 이용해 프로세스 간 통신을 할 수 있게 된다. Kernel이란 ? 운영체제 자체도 소프트웨어이므로 메모리에 올라가야 사용할 ..

[AWS] ELB를 생성해 EC2 인스턴스 로드밸런싱하기
Public Cloud/AWS2022. 4. 1. 15:15[AWS] ELB를 생성해 EC2 인스턴스 로드밸런싱하기

Elastic LoadBalancer 실습을 위해 EC2 인스턴스를 3개 생성한다. LB가 동작중임을 확인하기 위해 인스턴스 생성 시 각 인스턴스에 접속 시 뜨는 화면을 달리한다. 인스턴스를 만들 때 단계 3 : 인스턴스 세부 정보 구성의 하단 [고급 세부 정보] 의 사용자 데이터에 셸 스크립트를 작성한다. 참고로 내가 사용한 셸 스크립트는 다음과 같다. #!/bin/bash yum install -y httpd systemctl start httpd systemctl enable httpd usermod -a -G apache ec2-user echo "TEST PAGE - Instance x" > /var/www/html/index.html chown -R ec2-user:apache /var/www..

[AWS] nginx, Phusion Passenger 설치 및 서비스 구현
Public Cloud/AWS2022. 4. 1. 11:30[AWS] nginx, Phusion Passenger 설치 및 서비스 구현

✔︎ 서버 환경 구성 EC2 인스턴스에서 간단한 샘플 웹 어플리케이션을 서비스하기 위해 Node.js를 설치한다. # nvm 설치 스크립트 파일 내려받기 $ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash # 내려받은 nvm 설치 스크립트 실행 $ . ~/.nvm/nvm.sh # 설치 $ nvm install 10.13.0 # 버전 확인 $ node -e "console.log('Running Node.js ' + process.version)" ✔︎ 소스코드 배포 Git 저장소에 있는 소스코드를 EC2 인스턴스로 내려받아 코드 실행에 필요한 의존성 패키지를 설치 # 시스템 패키지 설치를 위해 sudo..

[AWS] Dynamo DB CRUD
Public Cloud/AWS2022. 3. 31. 23:11[AWS] Dynamo DB CRUD

Dynamo DB CRUD 실습 실습 요약 ① 다이나모 DB 테이블 만들기 테이블 명 : UnivStudent 기본키 : univ_name + univ_id ② 테이블 데이터 추가 ③ 데이터 수정 및 삭제 ④ 데이터 스캔과 쿼리 ⑤ 글로벌 보조 인덱스 생성 ⑥ 테이블 삭제 ① 테이블 만들기 ② 테이블 데이터 추가 항목 생성을 클릭한다. "univ_name"과 "univ_i" 속성이 존재하며 이 값은 기본키에 해당하므로 항목 생성시 반드시 입력해야 하는 필수 항목이다. 데이터를 추가하려면 속성을 추가하면 된다. 새 속성 추가를 누르고 추가하려는 속성의 타입을 선택한 뒤 속성 이름과 값을 입력한다. 추가 데이터를 입력한다. 테이블의 항목에서 추가한 데이터들을 속성 이름과 값의 쌍으로 확인할 수 있다. NoS..

[AWS] RDS 데이터베이스 구축 및 Apache 연결하기
Public Cloud/AWS2022. 3. 31. 17:26[AWS] RDS 데이터베이스 구축 및 Apache 연결하기

✔︎ RDS 데이터베이스 구축하기 앞서 진행한 VPC 구성에 이어서 RDS 데이터베이스를 구축해본다. 다음은 결과물 구성도이다. RDS 구축은 고가용성을 위해 가용 영역이 2개 이상 필요하다. 구성도와는 다르게 VPC peering을 이용해 각 다른 Region에 구성된 Public Subnet과 Private Subnet 을 연결한다. 안전한 통신을 위해서는 보안 그룹을 통해 인바운드, 아웃바운드 네트워크를 설정해야 한다. 우선 RDS 인스턴스 이용과 직접 환경 구축하는 방법의 차이를 이해하기 위해 각 인스턴스에 직접 DB client, server를 구축해본다. Region A에 만들어놨던 인스턴스로 진행할 것이며 하나의 인스턴스 (db-server 역할)를 더 생성할 것이다. Region A에 생성..

image