본문 바로가기

CS

(46)
프로세스 동기화 프로세스 동기화(Process synchronization) -임계구역 문제(Critical section) -공유데이터에 대한 동시(Concurrent)한 접근은 데이터의 비일관성(Inconsistency)를 초래 -해결책 -Mutual exclusion(상호배타): 오직 한 쓰레드만 진입 -Progress(진행): 진입결정은 유한시간 내 -Bounding waiting(유한대기): 어느 쓰레드라도 유한시간 내 진입가능 -주된 관심 -임계구역 문제 해결 -프로세스 실행 순서 제어(흐름 제어) -Busy wait등 비효율성 제거
연결리스트 연결리스트란 무엇인가? -원소들을 저장할때 그다음 원소가 있는 위치를 포함시키는 방식으로 저장하는 자료구조 연결리스트의 성질은? K번째 원소를 확인/변경하기 위해 O(K)가 소요됨 임의의 위치에 원소를 추가/제거는 O(1) 원소들이 메모리상에 연속해 있지 않아 Cache hit rate가 낮지만 할당이 쉬움 추가적으로 필요한 공간(Overhead)가 O(n)이 필요(주소값) 연결리스트의 종류 단일 연결 리스트 이중 연결 리스트 원형 연결 리스트 연결리스트의 용도는? 임의의 위치에서 원소를 추가/삭제가 빈번할때(ex. 메모장) 커서 이동이 빈번할때 STL list L = {1,2}; list auto t = L.begin(); L.push_front(10); // 10 1 2 cout
쓰레드(Thread) 쓰레드(Thread) -프로그램 내부의 흐름 다중 쓰레드(Multi Threads) -한 프로그램에 2개 이상의 맥 -여러 맥이 동시에 실행되는것처럼 보인다(Concurrent) cf.Simultaneous(물리적 동시) -현대에는 Process단위가 아니라 Thread단위로 Context switching 쓰레드의 구조 -프로세스의 메모리 공간(Code, data), 자원(File, I/O) 공유 -개별적인 PC, SP(Stack Pointer), Registers, stack 비공유
주소 지정 방식 주소 지정 방식 0단계 주소 지정 방식 1단계 주소 지정 방식 2단계 주소 지정 방식 0단계 주소 지정 방식 -즉시 주소 지정 방식(immediate addressing mode) -명령어 피연산자 필드에 실제 데이터가 포함 묵시적 주소 지정 방식(implied addressing mode) -누산기나 스택에 데이터 존재 1단계 주소 지정 방식 -레지스터 주소 지정 방식(Register addressing mode) -직접 주소 지정 방식(Direct addressing mode) 2단계 주소 지정 방식 -레지스터 간접 주소 지정 방식(Register-indirect addressing mode) -메모리 간접 주소 지정 방식(Indirect addressing mode) -변위 주소 지정 방식(Indi..
배열(array) 배열이 무엇인가? -메모리상에 원소를 연속하게 배치한 자료구조 Vector(C++)는 무엇인가? -배열과 유사하나 크기를 자유자재로 변경이 가능 배열의 성질은? O(1)에 K번째 원소를 확인/변경 가능 추가적으로 소모되는 메모리의 양이 거의 없음 Cache hit rate가 높음(확률적으로 바로 옆의 메모리를 쓰는 경우가 많음) 메모리상에 연속된 구간을 잡아야해서 할당에 제약이 걸림 배열의 용도는? 데이터를 자주 바꾸지 않고 쌓아둘때 입력값을 담아둘때 인덱스에 해당하는 원소를 O(1)으로 접근할때 문제해결에 있어서 배열의 활용 방식은? ex1) 알파벳 갯수 세기: freg[c - 'a']++; ex2) 인덱스를 활용한 카운팅 STL vector v1(4,5); // {5,5,5,5} cout
CPU 스케쥴링(CPU Scheduling) CPU Scheduling -Scheduling criteria -CPU utilization(CPU 이용률): CPU가 얼마나 이용되는지 -Troughput(처리율): 시간당 몇개의 작업이 끝나는지 -Turnaround time(반환시간): 처음시작부터 종료될때까지 걸린시간(대기시간 포함) -Waiting time(대기시간): Ready queue에서 얼마나 기다렸는지 -Response time(응답시간): 실행후 처음 응답이 나올때까지 걸린 시간 CPU Scheduling Algorithms -First-Come-First-Served(FCFS) -Simple-Fair -Convoy Effect(호위 효과): 앞에 긴 작업으로 인해 종속적으로 오래 기다림 -Non-preemptive -Shortest..
명령어 집합 분류 컴퓨터 구조 종류 스택(Stack) 컴퓨터: CPU 내의 스택을 데이터 저장소로 사용 누산기(Accumulator) 컴퓨터: ACC 레지스터를 연산관련 유일한 데이터 저장소로 사용 범용 레지스터(General Purpose R) 컴퓨터: 다수의 레지스터 각 종류별로 명령어 인출 트래픽과 데이터 이동 트래픽의 합을 비교
프로세스 프로세스 -RAM에 적재된 프로그램 -PCB(Process Control Block): 프로세스에 대한 모든정보 Scheduler -Job scheduler(long-term scheduler): Job queue 관리 -CPU scheduler(short-term scheduler): Ready queue 관리 -Device scheduler: Device queue 관리 Multiprogramming -Degree of Multiprogramming: 메모리에 프로세스 몇개인지 -I/O bound(주로 문서) vs CPU-bound(주로 계산) process -Medium-term scheduler -swapping: os가 메모리를 감시 → 프로세스를 Disk(Backing store)로 내보내거나..