일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 네트워크
- boj
- 프로세스
- centOS7
- 도커 명령어
- linux
- 클라우드
- AWS
- centOS
- NGINX
- kubernetes
- 컨테이너
- Swift
- Python
- swift 클로저
- docker
- 부스트코스
- ios
- devops
- 도커
- k8s
- 도커 컨테이너
- C++
- 인프라
- 리눅스
- 도커 이미지
- os
- 쿠버네티스
- 운영체제
- 데브옵스
- Today
- Total
목록분류 전체보기 (153)
귀염둥이의 메모
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이 되면 타이머 인터럽트 발..
ARC(Automatic Reference Counting) Swift에서는 앱의 메모리 사용을 관리하기 위해 ARC(Automatic Reference Counting)을 사용합니다. 참조 횟수를 자동으로 관리하기 때문에 대부분의 경우에 개발자는 메모리 관리에 신경 쓸 필요가 없고 ARC가 알아서 더 이상 사용하지 않는 인스턴스를 메모리에서 해지합니다. 하지만 몇몇의 경우 ARC에서 메모리 관리를 위해 코드의 특정 부분에 대한 관계에 대한 정보를 필요로 합니다. 참조 횟수는 클래스 타입의 인스턴스에만 적용되고 값 타입인 구조체 열거형 등에는 적용되지 않습니다. ARC의 동작 클래스의 새로운 인스턴스를 만들 때마다 ARC는 인스턴스 정보를 담는데 필요한 적정한 크기의 메모리를 할당합니다. 이 메모리는 그..
운영체제(Operating System) 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 협의의 운영체제(커널) : 운영체제의 핵심 부분으로 메모리에 상주하는 부분 - 좁은 의미 광의의 운영체제 : 커널뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념 - 넓은 의미 운영체제의 목적 컴퓨터 시스템의 자원을 효율적으로 관리 프로세서, 기억장치, 입출력 장치(리소스들) 등의 효율적 관리 사용자 및 OS 자신의 보호 프로세스, 파일, 메시지 등을 관리 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행함 운영체제의 분류 동시 작업 가능 여부 단일 작업(Single tasking) : 한 번에 하나의..
클로저의 값 캡쳐(Capturing Values) 클로저는 참조 타입(Reference Type)입니다. 클로저가 매개변수나 지역변수가 아닌 주변 외부의 context를 사용하기 위해 주변 외부의 context를 참조하는 것 원본 값이 사려져도 클로저의 body 안에서 그 값을 활용할 수 있습니다. 예제 코드 func makeIncrementer(forIncrement amount: Int) -> () -> Int { var runningTotal = 0 func incrementer() -> Int { runningTotal += amount return runningTotal } return incrementer } let incrementByTen = makeIncrementer(forIncreme..
sort() - 기본 오름차순 #include #include #include using namespace std; int main() { vector v = {3, 2, 0, 9, 7, 1, 4, 8, 6}; sort(v.begin(), v.end()); for (int n : v) { cout
기본적인 네비게이션바는 그림자(구분선)이 있습니다. 이를 제거하기 위해서 viewDidLoad()에 다음과 같이 작성해줍니다. navigationController?.navigationBar.shadowImage = UIImage() shadowImage의 기본값은 nil 이며, 그림자 이미지가 들어갑니다.
.gitignore는 버전 관리에서 제외할 파일들을 지정하는 파일입니다. 이미 원격 저장소에 올라와 있는 파일을 .gitignore에 추가하기 위해서 한 가지 작업이 필요합니다. 먼저 .gitignore에 버전 관리에서 제외할 파일들을 추가합니다. 그리고 git rm -r --cached . 명령어를 통해서 원격 저장소의 파일을 삭제합니다. (로컬은 그대로 유지) add, commit, push 진행 $ git rm -r cached . $ git add . $ git commit -m "Update .gitignore" $ git push