본문 바로가기

분류 전체보기

(68)
11장 - 분산 및 다중(병렬) 처리 시스템 01. 분산 시스템 네트워크 구조(Topology) - 강결합(Tightly Coupled) 시스템 : 프로세서들이 메모리를 공유하는 다중 처리 시스템 - 약결합(Loosely Coupled) 시스템 : 둘 이상의 독립된 시스템을 통신선으로 연결 망(Mesh) 구조 각 노드를 시스템의 모든 노드와 직접 연결하는 완전 연결(Fully Connected) 방법 처음 설치 비용이 많이드나, 속도가 매우 빠름. 신뢰성이 높음 트리(Tree) 구조 계층(Hierarchy) 구조라고도 하며 회사의 컴퓨터 네트워크에 사용하는 방법으로, 네트워크의 각 노드가 트리로 구성되어 있음 루트를 제외한 각 노드는 단일 부모와 자식 몇 개를 가짐 비용은 망 구조보다는 낮음 하지만 부모가 고장나면 자식 간에는 통신할 수 없음 성형..
[Container - 4] 쿠버네티스 (Kubernetes) 등장 배경 도커 이미지가 점차 많아짐에 따라 관리해야할 대상이 늘어나게 되었고, 이를 관리하고 자동화할 툴이 필요하게 되어 Google에서 개발하여 등장함 현재는 CNCF(Cloud Native Computing Foundation) 재단에서 Open Source로 관리 중 Kubernetes가 너무 길어 끝 단어 사이에 8글자가 들어가 K8S라고도 부름 기존의 수동으로 제어하던 Container의 배포, 운영을 자동화하는 "오케스트레이션 시스템"으로, 서버를 클러스터로 구성하여 관리 특징은 아래와 같음 상태관리 : 상태를 선언하고 유지함. 노드가 죽거나 응답이 없을 경우, 자동으로 컨테이너를 관리하여 상태를 유지함 스케줄링 : 조건에 맞는 노드를 찾아 컨테이너를 배치 클러스터 : 가상 네트워크를 통해 ..
[Container - 3] Docker Docker 탄생 배경 LXC가 격리된 환경을 제공하였으나, 서비스를 운영하기 위한 기능들이 부족하여 Docker가 탄생 문서 관리 : 이력 관리가 힘들어 지면서 상태관리 도구가 등장 상태관리 도구 프로그램을 실행할 때, 참조하는 설정 파일을 코드로 작성해 협업 및 버전 관리가 가능하였음 하지만, 한 서버에서 여러 버전을 관리하기가 어려움 가상 머신(VM) 한 서버에 여러개 설치가 쉽고 현재 상태를 저장할 수 있었음 셋팅 방법 및 이미지 공유가 어렵고, 너무 느림 자원격리 LXC를 사용해 프로세스, 파일, 디렉토리 등을 분리하여 사용 빠르고 효율적이나 기술이 너무나 어렵고 불편하여 사용 빈도가 낮음 위의 시행착오를 겪으면서 탄생한 것이 Docker(2013년도) 초기에는 LXC를 기반으로 구현하였으나, ..
[Container - 2] chroot, namespace, cgroup chroot container의 시초를 말하며, root에서 directory를 생성하여 마치 root 인 것 처럼 활용하는 방법 chroot를 통해 만든 fake root는 하나부터 열까지 다 지정해 주어야 함 참조 라이브러리(bin/bash), 파일, 디렉토리 등 이미지를 이용해 한번에 환경을 생성할 수 있음 (nginx 활용) 문제점 : fake root에서 손쉽게 빠져나올 수 있음 mkdir을 이용해 fake root에서 temp directory를 생성함 생성한 temp directory에 접근하여 chdir("../../../") 을 이용해 빠져나옴 > 이를 해결하기 위해 pivot_root, namespace 등이 등장 pivot_root: root 파일 시스템의 마운트 포인트를 변경함으로써..
[Container - 1] 컨테이너 역사 역사 컨테이너의 시작은 chroot에서부터 시작 참고 : https://jw-world.tistory.com/71 [Container - 2] chroot, namespace, cgroup chroot container의 시초를 말하며, root에서 directory를 생성하여 마치 root 인 것 처럼 활용하는 방법 chroot를 통해 만든 fake root는 하나부터 열까지 다 지정해 주어야 함 참조 라이브러리(bin/bash), 파일.. jw-world.tistory.com - root 디렉토리를 변경하는 것 하지만, 이는 파일 등에 액세스 권한만 제어할 뿐 다른 컨트롤을 할 수 없음 이를 개선하여 Unix OS인 FreeBSD에서 Jail을 발표 (2000) 호스트 OS와 Jail이라는 가상 OS..
2장 - 운영체제의 소개 1. 운영체제의 개념과 발전 목적 - 운영체제는 다양한 응용 프로그램이 하드웨어, 즉 컴퓨터 자원을 효율적으로 사용할 수 있도록 관리하고 조정하는 역할 - 소프트웨어 시스템 소프트웨어 컴퓨터 자원을 관리, 응용 프로그램의 실행을 지원하여 컴퓨터를 제어 운영체제, 장치 드라이버 등 유틸리티 컴퓨터의 여러 처리 과정을 보조해 시스템을 유지하고 성능을 개선하는 프로그램 운영체제를 돕는 역할 응용 프로그램 어떤 문제를 해결하거나 특정 작업을 수행하는 프로그램 - 운영체제 발전 목적 편리성 : 사용자에게 편리한 환경 제공 사용자와 컴퓨터 시스템이 정보 및 명령을 상호 교환할 수 있는 인터페이스 제공 효율성 : 시스템 성능 향상 처리량, 지연,응답시간, 신뢰도, 사용 가능도에 따라 성능을 평가 제어 서비스 향상 2..
1장 - 컴퓨터 시스템의 소개 01. 컴퓨터 하드웨어의 구성 H/W - 데이터를 처리하는 물리적인 기계장치 S/W - 어떤 작업을 지시하는 명령어로 작성한 프로그램 (Ex. OS(운영체제) - 하드웨어를 관리하는 소프트웨어) 하드웨어의 구성 프로세서 (Processor) - 컴퓨터 하드웨어에 부착한 모든 장치의 동작을 제어하고 명령을 실행 - CPU(Central Processing Unit) 이라고도 함 레지스터 용도에 따라 전용 레지스터 범용 레지스터 사용자가 정보를 변경할 수 있는지에 따라 사용자 가시(User-visible) 레지스터 - 유저가 OS와 사용자 프로그램을 이용해 정보 변경 가능 데이터 레지스터(DR, Data Register) 함수 연산에 필요한 데이터를 저장 값, 문자 등을 저장 - 산술 연산이나 논리 연산에 ..
0장 - 운영체제 개요 운영체제에 대한 개념을 공부하고 자신의 생각을 정리하기 위한 공간 cf - 단순히 책의 내용을 정리하는 것이 아닌 개념에 대한 자신의 생각을 정리하기 위함 "그림으로 배우는 구조와 원리 운영체제" 라는 책을 바탕으로 운영체제를 학습하고 각 개념에 대한 정리를 수행하면서 의문점이나 생각을 논리적으로 정리하기 위한 공간 - 답이 아닐 수가 있으나, 수정되는 사항으로 만들어 나가는 공간