전체 글 189

CS_운영체제_PCB & Context Switching

PCB란?운영체제는 컴퓨터 시스템에서 여러 프로세스를 관리해야한다.프로세스 제어 블록 (PCB)는 운영체제가 각 프로세스에 대해 유지하는 데이터 구조로,각 프로세스는 고유한 PCB를 가지며 현재 상태와 관련된 모든 정보를 저장한다. PCB는 커널 영역에 생성되며,프로세스가 생성될 때 할당되고, 프로세스가 종료될 때까지 유지된다. PCB에 저장되는 정보1. 프로세스 상태 (Process State): 프로세스의 현재 상태. ex) 준비(Ready), 실행(Running), 대기(Waiting) 상태 등 2. 프로세스 우선순위 (Scheduling Information): 프로세스의 우선순위, 스케줄링 큐 포인터 등 스케줄링과 관련된 정보3. 프로그램 카운터 (Program Counter, PC): 다음에 ..

CS 2024.06.18

CS_운영체제_주소 변환(Address Translation)

주소 변환 (Address Translation)주소 변환은 가상 주소를 물리적 주소로 변환하는 과정을 말한다. 이는 메모리 가상화를 통해 운영체제가 메모리를 효율적으로 관리하고 보호할 수 있도록 하는 핵심 개념이다. 하드웨어와 운영체제가 협력하여 이 과정을 수행한다. 이 과정은 프로세스 보호, 메모리 효율성, 보안 등의 이유로 매우 중요하다. 메모리 가상화의 필요성메모리 가상화는 다음과 같은 이유로 필요하다:프로세스 보호: 각 프로세스가 독립적인 주소 공간을 가지므로, 프로세스 간의 메모리 충돌을 방지한다. 이는 프로세스가 다른 프로세스의 메모리 영역에 접근하는 것을 방지하여 시스템의 안정성을 높인다.메모리 효율성: 실제 물리적 메모리보다 큰 가상 메모리 공간을 제공하여 메모리 사용을 최적화한다. 이는..

CS 2024.06.18

CS_운영체제_주소 공간과 가상 메모리

(windows의 사례로..) MS-DOS 시절에는..애플리케이션에게 많은 권한을 주어서 프로그램이 문제 생길시 OS가 멈추는 더 큰 문제가 발생했다.(인터럽트 제어도 애플리케이션이 수행해서 메모리에 따라 코드를 수정해야했다..) 이 때 가상메모리 개념이 등장했다.  가상메모리를 사용하게 되면서..실제 필요한 메모리만 로드해서 물리적 메모리를 효율적으로 사용하게 됐다.▷ 디스크 공간을 활용하여 물리적 메모리의 한계를 넘어서는 작업을 처리할 수 있다. 프로세스가 죽어도 os는 가상메모리를 사용하므로 실제 메모리를 회수할 수 있다.▷ 메모리 낭비를 방지하고, os가 손상되지 않도록 한다. ∴ 가상 메모리는 단순히 자원을 폭넓게 사용하기 위한 것이 아니라, 안전하게 사용하기 위한 방식이기도 하다.   가상 메..

CS 2024.06.18

쿠버네티스 오버뷰

워커 노드에서 실행되는 컨테이너를 관리하는 마스터 노드, 실제로 동작되는 서버에 해당되는 워커 노드, 이를 합쳐서 구성된 시스템이 클러스터 컨테이너와 볼륨을 묶은 게 파드고, 파드를 모은 것이 서비스고(워커 노드 내 통신 배분), 파드의 수를 관리하는 게 레플리카 세트 요청 측면에서먼저 가장 바깥에 위치해 각 통신을 워커 노드들에게 분배해주는 놈이 로드밸런서, 로드밸런서에게 분배된 통신을 워커 노드 내에서 다시 분배해주는 게 서비스    클러스터: Kubernetes 클러스터는 마스터 노드와 워커 노드로 구성마스터 노드 (Control Plane): 클러스터를 관리하는 노드클러스터의 상태를 유지하고, 워커 노드에 작업을 분배워커 노드 (Worker Node):컨테이너가 실제로 실행되는 노드마스터 노드의 ..

docker 2024.06.17

CS_운영체제_인터럽트 & 시스템콜

프로그램 실행과 모드 전환우리가 개발하는 프로그램은 일반적으로 유저 모드에서 실행된다.  프로그램 실행 중에 인터럽트가 발생하거나 시스템콜을 호출하게 되면 커널 모드로 전환된다. (User mode --> Kernel mode) 커널 모드에서의 작업커널 모드 (Kernel Mode): 프로그램의 현재 CPU 상태 저장: 인터럽트나 시스템 콜이 발생하면, 먼저 프로그램의 현재 CPU 상태를 저장한다.커널의 직접 처리: 커널은 인터럽트나 시스템 콜을 직접 처리한다. 이 과정에서 CPU는 커널 코드를 실행한다.CPU 상태 복원: 처리가 완료되면, 중단됐던 프로그램의 CPU 상태를 복원하고, 커널은 중단된 프로그램을 다시 실행한다. (다른 프로그램을 먼저 실행한 후에 중단된 프로그램을 재개할 수도 있다.)통제권..

CS 2024.06.16

CS_운영체제_CPU 스케줄링

[고,중,저 수준 스케줄링]더보기고수준 스케줄링  목적: 시스템 내의 전체 작업 수를 조절한다.기능: 프로세스의 활성화/비활성화를 결정해 프로세스 수를 조절한다. 어떤 작업을 시스템이 받아들일지, 거부할지 결정한다.고수준 스케줄링은 프로세스가 시스템에 들어오거나 나가는 시점을 관리하며, 시스템의 과부하를 방지하기 위해 프로세스의 수를 조절한다. 이는 시스템 전체의 자원을 효율적으로 사용하도록 돕는다.고수준 스케줄링은 일반적으로 비선점형 방식으로 작동하며, 시스템의 상태와 리소스 사용량을 고려해 새로운 작업을 받아들일지 결정한다.  중간 수준 스케줄링 목적: 활성화, 중지를 통해 활성화된 프로세스 수를 조절해 과부하를 막는다.기능: 활성화된 프로세스 수를 조절함으로써 시스템이 효율적으로 운영되도록 보장한..

CS 2024.06.15

로드 밸런서 구성

웹 서비스의 가용성을 확보하기 위한 로드 밸런서를 구성1. 네트워크 로드밸런서2. 애플리케이션 로드밸런서 3. url 분기할 떄 쓸 로드밸런서  1. 네트워크 로드 밸런서 (Network Load Balancer, NLB)주요 기능 및 장점:고성능: 매우 높은 수준의 트래픽을 처리할 수 있으며, 지연 시간이 매우 낮습니다.단순한 트래픽 분산: 주로 TCP/UDP 레벨에서 트래픽을 분산합니다.고가용성: 대규모의 네트워크 트래픽을 효율적으로 처리하며, 장애 발생 시 빠르게 복구합니다.사용 사례:실시간 트래픽 처리: 실시간 게임, 금융 거래 시스템 등 매우 빠른 응답이 필요한 서비스에 적합합니다.고성능 요구: 높은 성능과 안정성이 요구되는 환경에서 사용됩니다.2. 애플리케이션 로드 밸런서 (Applicatio..

ssh 자동로그인 세팅

https://velog.io/@tkaqhcjstk/%EB%A7%A5%EB%B6%81-iterm2-ssh-%EC%9E%90%EB%8F%99-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EC%84%B8%ED%8C%85%ED%95%98%EB%8A%94-%EB%B2%95 맥북 iterm2 ssh 자동 로그인 세팅하는 법iterm2를 키면 맨 위에 profiles 누른후open Profiles... 클릭처음엔 아마 Default에 별모양이 달려있는 것만 있을것이다.다른 블로그에서는 Default를 편집하라고 나와잇는데Default를 편집하게 되면,, 걍 itermvelog.io

Mac 2024.06.13

CS_운영체제_프로세스 & 스레드

프로세스와 스레드▶  프로세스 (Process) 메모리에 적재되고 CPU 자원을 할당받아 프로그램이 실행되고 있는 상태 프로세스 구조- 코드 영역: 프로그램 코드가 위치- 데이터 영역: 프로그램 실행 중 사용하는 변수와 파일 등의 데이터가 저장- 스택 영역: 함수 호출 시 되돌아올 주소와 변수 사용 범위에 영향을 미치는 영역- 힙 영역: 동적으로 할당된 데이터가 저장되는 공간 코드 영역과 데이터 영역은 크기가 고정된 정적 영역이며,스택 영역과 힙 영역은 프로세스 실행 동안 크기가 동적으로 변한다. 서로 다른 프로세스 간의 메모리 접근은 허용되지 않는다.  ▶ 멀티태스킹 (Multi Tasking) OS를 통해 CPU 자원을 여러 프로세스 또는 스레드 간에 나누어 사용하는 행위  ▶  스레드 (Thread..

CS 2024.06.13