일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- docker
- 네트워크
- boj
- 데브옵스
- 인프라
- 운영체제
- AWS
- os
- 클라우드
- NGINX
- devops
- linux
- Swift
- k8s
- 도커 이미지
- 프로세스
- swift 클로저
- Python
- 컨테이너
- 부스트코스
- kubernetes
- 도커 컨테이너
- ios
- centOS7
- C++
- 도커
- centOS
- 쿠버네티스
- 리눅스
- 도커 명령어
- Today
- Total
목록os (9)
귀염둥이의 메모
하이퍼 스레딩 (Hyper-Threading, HT) 인텔이 구현한 동시 멀티스레딩을 구현한 기술이다. 물리상 실행 장치 한 개에 가상 실행 장치 (Logical Core) 두 개를 할당해 성능을 높이려는 기술이다. 코어 한 개당 스레드가 두 개씩 추가되므로 OS는 물리적인 코어의 수 x 2로 코어의 수를 인식한다. 하이퍼 스레딩 성능 OS 상에서 멀티태스킹이 일어날 때, 대부분의 프로그램은 CPU 점유율이 몇 퍼센트에 불과할 정도로 매우 낮다(100%에 가깝게 사용하는 경우도 있음). 또한, 프로세스에 필요한 리소스 양은 진행 과정에 따라서 많기도 하고 적기도 하다. 첫 번째 그래프 2가지 작업이 시간의 흐름에 따라 하나의 프로세스에서 필요한 자원의 양을 나타냄 필요한 자원의 양이 많을 때도 있고, 적..
Valid / Invalid Bit in a Page Table page table 엔트리에는 사용되지 않는 부분도 만들어져야 한다 6, 7번의 페이지는 없지만 주소체계에서는 6, 7번 테이블 페이지는 만들어지고 invalid라고 표시 Memory Protection : Page table의 각 entry 마다 아래의 bit을 둔다 Protection bit page에 대한 접근 권한(read/write/read-only) Valid-invalid bit valid는 해당 주소의 frame에 그 프로세스를 구성하는 유효한 내용이 있음을 뜻한다 (접근 허용) invalid는 해당 주소의 frame에 유효한 내용이 없음을 뜻함 (접근 불허) Inverted Page Table Page table이 매우 큰 ..
Logical address (=Virtual address) 각 프로세스마다 독립적으로 가지는 주소 공간 각 프로세스마다 0번지부터 시작 CPU가 보는 주소는 logical address임 메모리에 올라갈 때 시작 위치는 바뀌지만 그 안에 있는 코드 상의 address는 그대로이다 Physical address : 메모리에 실제 올라가는 위치 Symbolic Address : 프로그래머 입장에서 보는 Symbol로 표현한 주소 (변수) 주소 바인딩(Address Binding) Complie Time Binding 물리적 메모리 주소(Physical address)가 컴파일 시 알려짐 컴파일러는 절대 코드(absolute code) 생성 이미 결정된 Logical address가 Physical add..
데이터의 접근 Race Condition 두 개 이상의 프로세스가 데이터에 동시에 접근하려 할 때 race conditon이 발생한다 S-Box(memory address space)를 공유하는 E-box(CPU space)가 여러개 있는 경우 race condition의 가능성이 있다 OS에서 race condition은 언제 발생하는가? kernel 수행 중 인터럽트 발생 시 Process가 system call을 하여 kernel mode로 수행 중인데 context switch가 일어나는 경우 Multiprocessor에서 shared memory 내의 kernel data 1. interrupt handler vs kernel count++ 과정 중간에 interrupt handler로 coun..
CPU and I/O Bursts in Program Execution 프로그램 실행? CPU를 연속적으로 쓰는 단계와 I/O를 실행하는 단계가 반복되며 실행되는 것 *여러 종류의 job(=process)이 섞여 있기 때문에 CPU 스케줄링이 필요하다!! interactive job에게 적절한 response 제공 요망 CPU와 I/O 장치 등 시스템 자원을 골고루 효율적으로 사용 프로세스의 특성 분류 I/O - bound process CPU를 잡고 계산하는 시간보다 I/O에 많은 시간이 필요한 job many short CPU bursts CPU - bound process 계산 위주의 job few very long CPU bursts CPU Scheduler & Dispatcher 스케줄러와 디스..
프로세스 생성 (Process Creation) 부모 프로세스(Parent process)가 자식 프로세스(children process) 생성 프로세스의 트리(계층 구조) 형성 프로세스는 자원을 필요로 함 운영체제로부터 받는다 부모와 공유한다 자원의 공유 부모와 자식이 모든 자원을 공유하는 모델 일부를 공유하는 모델 전혀 공유하지 않는 모델 수행(Excution) 부모와 자식은 공존하며 수행되는 모델 자식이 종료(terminate)될 때까지 부모가 기다리는(wait) 모델 주소 공간(Address space) 자식은 부모의 공간을 복사함 (binary and OS data) 자식은 그 공간에 새로운 프로그램을 올림 UNIX의 예시 fork 시스템 콜이 새로운 프로세스를 생성 부모를 그대로 복사 (OS ..
Process is a program in execution 프로세의 문맥(context) CPU 수행 상태를 나타내는 하드웨어 문맥 Program Counter 각종 Register 프로세스의 주소 공간 code, data, stack 프로세스 관련 커널 자료구조 PCB(Process Control Block) Kernel stack Time sharing, Multi Tasking을 위해 문맥을 파악한다. (현재 시점의 정확한 상태를 파악하기 위해 문맥을 살핀다!) 프로세스의 상태(Process State) 프로세스는 상태(state)가 변경되며 수행된다. Running : CPU를 잡고 instruction을 수행중인 상태 Ready : CPU를 기다리는 상태 (메모리 등 다른 조건을 모두 만족하고..
컴퓨터 시스템구조 Mode bit 사용자 프로그램의 잘못된 수행으로 다른 프로그램 및 운영체제에 피해가 가지 않도록 하기 위한 보호 장치 Mode bit을 통해 하드웨어적으로 두 가지 모드의 Operation 지원 1 (사용자 모드) : 사용자 프로그램 수행 0 (커널 모드) : OS 코드 실행 보안을 해칠 수 있는 중요한 명령어는 커널 모드에서만 수행 가능한 특권명령으로 규정 Interrupt나 exception 발생시 하드웨어가 mode bit을 0으로 바꿈 사용자 프로그램에게 CPU를 넘기기 전에 mode bit을 1로 셋팅 타이머(Timer) 정해진 시간이 흐른 뒤 운영체제에게 제어권이 넘어가도록 인터럽트를 발생시킴 타이머는 매 클럭 틱 때마다 1씩 감소 타이머 값이 0이 되면 타이머 인터럽트 발..
운영체제(Operating System) 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 협의의 운영체제(커널) : 운영체제의 핵심 부분으로 메모리에 상주하는 부분 - 좁은 의미 광의의 운영체제 : 커널뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념 - 넓은 의미 운영체제의 목적 컴퓨터 시스템의 자원을 효율적으로 관리 프로세서, 기억장치, 입출력 장치(리소스들) 등의 효율적 관리 사용자 및 OS 자신의 보호 프로세스, 파일, 메시지 등을 관리 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행함 운영체제의 분류 동시 작업 가능 여부 단일 작업(Single tasking) : 한 번에 하나의..