일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BFS
- AI
- 리눅스
- PYTHON
- 코딩
- DFS
- 브루트포스
- 동적프로그래밍
- 백준
- 프로그래밍
- 딥러닝
- google coding competition
- kick start
- linux
- 순열
- 파이썬
- CSS
- 구글 킥스타트
- 그래프
- 킥스타트
- 알고리즘
- nlp
- 코딩테스트
- dp
- OS
- 프로그래머스
- 동적 프로그래밍
- 네트워크
- 운영체제
- 코딩 테스트
- Today
- Total
목록OS (10)
오뚝이개발자
가상 메모리 관리의 목적 page fault rate를 최소화해 시스템 성능 최적화 reference bit(=used bit)란? 캐시나 페이지에서 최근에 참조되었는지 여부를 나타내는 bit 참조되면 1로 설정 주기적으로 0으로 초기화 locality에 기반한 정보(최근 참조된 것들 확인 가능) update bit(=dirty bit=modified bit=write bit)이란? 캐시나 페이지에서 갱신되었는지 여부를 나타내는 bit 만약 page에서 update bit=1면 해당 page의 (main memory상 내용) != (swap device상 내용) 변경된 내용을 swap device에 write-back해주는 작업이 필요(for 데이터 무결성) update bit는 write-back 후 ..
본 글은 HPC Lab의 youtube 강의를 듣고 요약한 것입니다. 모든 이미지 출처 역시 HPC Lab의 pdf 수업자료입니다. Virtual storage(Non-continuous allocation) Non-continuous allocation Paging system Segmentation system Hybrid system 프로그램을 여러 개의 block으로 분할해 실행 시 필요한 block들만 메모리에 적재(나머지 block들은 swap device에 존재) Address mapping Continuous allocation의 address mapping Relative address(상대주소) : 프로그램의 시작주소를 0으로 가정한 주소 Relocation(재배치) : 메모리 할당 후..
본 글은 HPC Lab의 youtube 강의를 듣고 요약한 것입니다. 모든 이미지 출처 역시 HPC Lab의 pdf 수업자료입니다. 메모리의 종류 레지스터-캐시-메인메모리(주기억장치)-하드디스크(보조기억장치) Block과 Word Block : 주기억장치-보조기억장치 사이의 데이터 전송 단위 Word : 주기억장치-레지스터 사이의 데이터 전송 단위(일반적으로 32bit, 64bit 컴퓨터는 이 word를 말한다) Address binding이란? 프로그램의 논리 주소를 물리 주소로 매핑(mapping)하는 작업 Binding 시점에 따라 세 가지로 구분 Compile time binding Load time binding Run time binding Address binding을 프로그램 수행시간까지 ..
본 글은 HPC Lab의 youtube 강의를 듣고 요약한 것입니다. 모든 이미지 출처 역시 HPC Lab의 pdf 수업자료입니다. Deadlock 발생 필요조건 4가지 Mutual exclusion of resources : 자원은 한 번에 한 프로세스만 사용 가능 Non-preemption resources : 자원은 오로지 사용 중인 프로세스가 끝날 때만 반환 가능 Hold and wait(Partial allocation) : 자원을 이미 hold하고 다른 자원 요청 Circular wait : P0은 P1이 사용 중인 자원을 기다리고, P1은 P2가 사용 중인 자원을 기다리고...Pn은 P0이 사용 중인 자원을 기다리는 형태 1,2번은 자원의 특성이고 3,4번은 프로세스의 특성이다. 위의 조건 ..
본 글은 HPC Lab의 youtube 강의를 듣고 요약한 것입니다. 모든 이미지 출처 역시 HPC Lab의 pdf 수업자료입니다. 다중 프로그래밍 시스템이란? 시스템 내에 여러 개의 프로세스들이 존재하는 것 공유 자원 또는 데이터가 있을 때, 동기화와 관련된 문제 발생 가능 프로세스 동기화란? 프로세스들이 서로 정보를 공유해 공유 데이터에 관한 동작을 맞추는 것 Critical section(임계영역) 공유 데이터에 접근하는 코드 영역 Race condition : 둘 이상의 프로세스의 공유 데이터에 대한 접근 순서에 따라 결과가 달라지는 현상(경쟁한다는 의미에서 race) Mutual Exclusion(상호배제) 둘 이상의 프로세스가 동시에 critical section에 진입하는 것을 막는 것 Mu..
본 글은 HPC Lab의 youtube 강의를 듣고 요약한 것입니다. 모든 이미지 출처 역시 HPC Lab의 pdf 수업자료입니다. 다중프로그래밍이란?(Multi-programming) 스케쥴링이 필요한 이유는 다중프로그래밍 때문이다. 시스템 내에 여러 개의 프로세스가 존재하기에 이들을 효율적으로 스케쥴링 해주어야 하는 것이다. 여기서 자원을 할당할 프로세스를 선택하는 것이 스케줄링이다. 스케줄링의 목적 주된 목적은 시스템의 성능(performance) 향상 -> 효율성 증대이다. 그럼 대표적인 시스템의 성능 지표는 무엇이 있을까? 응답시간(response time) : 작업요청으로부터 응답 받을때까지의 시간(interactive or real-time system에서 중요) 처리량(throughput)..
스레드(Thread) 프로세스 내에서 실행되는 작업의 단위 프로세서 활용의 기본 단위 stack이외의 메모리 공간(data, heap, code) 다른 스레드와 공유 스레드의 장점 사용자 응답성 일부 스레드가 처리 지연되어도, 다른 스레드는 작업 계속 처리 가능 자원 공유 커널의 개입을 피해 효율 증가 경제성 프로세스의 생성, context switch에 비해 효율적 멀티 프로세서 활용 병렬처리를 통한 성능 향상 스레드의 구현 사용자 수준 스레드(User thread) 커널 수준 스레드(Kernel thread) 사용자 수준 스레드 사용자 영역의 스레드 라이브러리로 구현됨 커널은 스레드의 존재 모름 장점 커널의 관리를 받지 않음(생성 및 관리의 부하 적음) 단점 커널은 프로세스 단위로 자원할당 하나의 스..
프로세스 "실행 중인 프로그램" 커널에 등록되고 커널의 관리 하에 있는 작업 PCB(Process Control Block) Def) OS가 프로세스 관리에 필요한 정보 저장하는 블록 프로세스 생성 시, 생성됨 kernel space에 저장 프로세스의 상태(Process state) 프로세스-자원 간의 상호작용에 의해 결정 Created state 작업(Job)을 커널에 등록 PCB 할당 및 프로세스 생성 가용 메모리 공간 체크(있으면->ready, 없으면->suspended ready) Ready state 프로세서 할당 대기 상태(프로세서 이외의 모든 자원 할당 O) Running state 프로세서와 필요한 자원 모두 할당받은 상태 Preemption running->ready 프로세서 스케줄링(e..