system
PID PPID
PID PPID PID PPID 리눅스에서 ps를 사용하면 PID와 PPID를 보여 줌 PID는 Process ID PPID는 Parent Process ID 현재 프로세스를 호출해서 생성한 부모 프로세스의 PID 만약 이 값이 1인 경우, 부모 프로세스가 종료되어서 init process가 부모 프로세스가 된 경우를 의미 (고아 프로세스) References https://jammdev.tistory.com/140 https://leeyh0216.github.io/posts/sid_pid_ppid_pgid/
read moresystem
Virtualization
Virtualization Virtualization 가상화란 컴퓨터 리소스를 추상화한다는 뜻 물리적 리소스를 숨기고 사용자에게 가상의 컴퓨팅 환경 제공 이 가상의 컴퓨팅 환경을 가상 머신이라고 함 하나의 물리적 리소스 위에서 여러 OS를 동시에 실행할 수 있게 해줌 운영체제와 하드웨어를 분리할 수 있다는 장점 존재 물리적 리소스에 설치된 OS를 호스트 OS, 가상 머신 위에 설치된 OS를 게스트 OS라고 함 하이퍼바이저 가상 머신은 하이퍼바이저를 이용해 하드웨어를 가상화 호스트 시스템에서 다수의 게스트 OS를 구동할 수 있게 해 주는 소프트웨어 하드웨어와 가상 머신 사이의 중간 관리자 역할 하이퍼바이저 가상화 방법 네이티브 방식 하이퍼바이저가 하드웨어 바로 위에서 실행됨 하드웨어 자원을 효율적으로 사용 가능하지만, 하드웨어 드라이버 설치 필요 Hyper-V, Xen 등이 대표적 전가상화와 반가상화로 구분됨 전가상화 하드웨어를 모두 가상화해서 게스트 OS와 호스트 시스템을 완전 분리 DOM 0라는 관리 머신을 거쳐 하이퍼바이저와 통신 I/O가 잦은 자원을 컨트롤하기 번거로움 반가상화 하드웨어를 완전히 가상화하지 않음 게스트 OS의 커널을 일부 수정해 하이퍼바이저를 통해 하드웨어와 통신 가능 자원을 직접 요청 가능하므로 전가상화에 비해 성능이 좋음 게스트 OS에 종속성이 생기므로 범용성은 떨어짐 호스트 방식 하이퍼바이저가 호스트 OS 위에서 동작 네이티브 방식에 비해 오버헤드가 크지만, 게스트 OS에 종속되지 않음 VMWare, Virtual Box 등이 해당 컨테이너 가상화 방법 하이퍼바이저 기반의 가상화 방법의 대안으로, 하이퍼바이저 및 게스트 OS 없이 가상화하는 방법 컨테이너라는 격리된 컴퓨팅 환경을 사용함 컨테이너에 애플리케이션에 필요한 라이브러리, 구성 파일 등을 이미지 단위로 빌드하고 배포하면 됨 OS가 필요하지 않으므로 가상 머신에 비해 실행 및 배포가 빠르고 가벼움 Docker가 가장 많이 사용됨 단점 많은 메모리 필요, Thrashing 발생 가능 CPU 경쟁에 따른 성능 하락 발생 가능 사용에 시스템적인 지식 필요 -> 컨테이너 방식 사용시 해결 가능 References https://eunjinii.
read moresystem
Sequential Access Random Access
Sequential Access Random Access Sequential Access 데이터에 접근하는 방식 중 하나로, 순서가 정해진 데이터를 순차적으로 접근하는 방식 데이터 갯수 및 위치에 접근 속도가 영향을 받으며, $O(N)$의 시간 복잡도를 가짐 Linked list를 접근할 때 해당됨 Random Access 데이터의 주소를 통해 접근하는 방식 데이터 갯수나 위치에 접근 속도가 영향을 받지 않으며, $O(1)$의 시간 복잡도를 가짐 Array를 접근할 때 해당됨 References https://keoroo.tistory.com/72 https://ko.wikipedia.org/wiki/%EC%9E%84%EC%9D%98_%EC%A0%91%EA%B7%BC
read moresystem
SRAM / DRAM
SRAM / DRAM SRAM / DRAM 이란 휘발성 RAM의 두 가지 종류. 물리적 차이 존재.
SRAM (Static RAM) Flip-flop으로 작동. 전원이 공급되는 한 내용을 계속 보유. 별도의 전류 신호가 오기 전에는 내부에서 루프를 돌려서 상태를 유지. 접근 속도가 빠르지만, 비싸고 대용량 제작이 힘듦. L1, L2, L3 등의 캐시에 주로 사용. 6개의 트랜지스터로 구성된 비교적 복잡한 구조. DRAM (Dynamic RAM) 축전기(Capacitor)로 작동. 시간이 지남에 따라 전하가 방전되므로, 주기적으로 재충전(refresh)를 해줘야 내용을 유지 가능.
read moresystem
Scale up / Scale out
Scale up / Scale out Scale up / Scale out 이란 추가적인 서버 용량 및 성능을 위해 인프라를 확장하는 두 가지 방법.
Scale up 기존의 서버를 높은 사양으로 업그레이드 하는 것. 사용 중인 서버에 디스크, CPU / 메모리 업그레이드 등이 해당. Amazaon EC2 인스턴스 사양을 small에서 medium으로 올리는 것도 해당. 수직적 확장이라고도 함. 장점 추가적인 네트워크 관리가 필요하지 않음. 운영 및 관리 부담이 적음. 데이터 정합성(일관성)이 보장됨. 단점 수행시 서비스가 다운되어야 함.
read moresystem
DMA
DMA DMA란 하드웨어 장치가 CPU를 거치지 않고 메인 메모리에 접근할 수 있게 해 주는 컴퓨터 시스템의 기능.
PIO CPU를 통해 모든 데이터를 주고 받는 작업으로, DMA와 반대.
Third-party DMA DMA controller를 이용하는 표준 DMA. DMA controller가 메모리 주소를 생성하고, 데이터를 전송할 수 있음. Bus mastering DMA First-party DMA라고도 함. CPU와 주변 장치는 메모리 버스의 통제권을 가짐. 주변 장치는 CPU의 관여 없이 직접 시스템 메모리에 쓸 수 있음. 동작 모드 DMA는 상황에 따라 다음과 같은 두 가지 동작 모드가 있음.
read moresystem
Cache
Cache Cache란 데이터나 값을 미리 복사해 저장하는 하드웨어 혹은 소프트웨어 구성 요소.
캐시에서 데이터를 읽는 것이 원래 저장소에서 값을 읽는 것 보다 빠름.
Cache 종류 HW cache In-network cache SW cache 동작 방식 캐시는 여러 항목의 목록으로 구성됨. 각 항목은 원래 데이터의 복사본을 가지고 있고, 원래 데이터의 ID를 나타내는 태그도 있음. Cache hit: 데이터를 원래 저장소에서 찾기 전에 캐시를 확인하고, 캐시의 항목중에 데이터가 있으면 이를 사용하는 상황. Cache miss: 캐시의 모든 항목에 데이터가 없는 상황.
read more