Vector접근성이 좋다임의 접근이 가능하다중간 삽입/삭제는 리소스의 낭비가 발생한다 임의 접근이 가능하다는 뜻은 vector v; 가 있을 때 v[3]으로 접근이 가능하다는 뜻이다 List주소값으로 연결되어있다중간 삽입/삭제가 용이하다순차 접근만 가능하다 (임의 접근 불가능) -> Sort()로 정렬 불가능 Map레드 블랙 트리로 되어있고, 시간복잡도는 logN자료들이 자동으로 정렬되어 저장된다검색이 용이하다Key-Value로 이루어져있다빈번한 삽입/삭제는 부적합하다중복키 사용 불가능하다 Unordered_map / Hash map 자동으로 정렬되지 않는다Map보다 검색 속도가 빠르다Key값이 길고 복잡하거나 유사한 값이 많은 경우 해시 충돌이 발생할 수 있다 SetKey만 저장한다중복키..
> CS

버블 정렬 크기가 n인 배열(arr)이 있다고 가정했을때,(arr[0] 와 arr[1]), (arr[1] 와 arr[2]), (arr[2] 와 arr[3]) ..... (arr[n-1] 와 arr[n]) 을 비교해서 정렬하는 방식이다 시간복잡도는 O(n∧2)구현은 단순하지만 교환작업의 비효율성으로 거의 사용하지 않는다 #includeusing namespace std;void BubbleSort(int arr[], int length){ int temp; for (int i = 0; i arr[j+1]) { //자리 교체 temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } }}int main(){ int lis..

가상메모리의 개요 주기억장치 안의 프로그램 양이 많아질 때 보조기억장치 부분을 주기억장치처럼 사용한다당장 실행할 프로그램만 주기억장치에 저장한다 Virtual Memory 가상의 주소공간 (보조기억장치의 번지) Physical Memory주기억장치의 사용 가능한 주소 Page Table Virtual Memory 와 Physical Memory의 매핑 정보를 가지고 있는 테이블 가상 메모리 개요 관리 정책 (주기억장치 관리정책과 동일 + 매핑)반입배치교체할당사상(매핑) 스레싱 (Thrashing) 가상 메모리에서 페이지 부재(Page Fault)가 비정상적으로 많이 발생하여페이지 교체에 따른 프로세스 처리가 급격히 저하되는 현상 원인리소스 부족CPU가 원하는 데이터가 없을 확률이 높다 부적..
주기억장치 관리정책반입배치교체할당 반입 정책요구예상 지역성(미리 올려놓는것) 배치 정책 : 어디에 배치할 것인가동적할당(가변)에서만 사용한다Heap에 대한 이야기 (Stack영역 아님!) 최초 적합(First Fit)최적 적합(Best Fit)최악 적합(Worst Fit) 가장 큰 공백에 배치 - 외부 단편화 완화다음 적합(Next Fit) 교체 정책FIFOLFU (Least Frequently Used)LRU (Least Recently Used)OPT (OPTimal) LRU (Least Recently Used) VS OPT (OPTimal)LRU, LFU는 현재 시점에서 가장 오랫동안 사용되지 않은 것을 교체하는 것 OPT는 앞으로 가장 오랫동안 사용되지 않을 페이지를 (예상해서)교..

CPU 스케줄링 어떤 프로세스가 먼저 실행이 될지 결정해주는 것 스케줄링 기법 선점 ( Preemptive ) 스케줄링한 프로세스가 CPU를 차지하고 있을 때 우선순위가 높은 다른 프로세스가 현재 프로세스를 중지시키고 자신이 CPU를 선점한다RR, SRT, 다단계 큐, 다단계 피드백 큐 비선점 ( Non-Preemptive ) 스케줄링한 프로세스가 작업 종류 후 CPU 반환 전에는 다른 프로세스는 CPU 선점 불가능시스템 안정성이 더 불안정하다FCFS(FIFO), Priority, Deadline, SJF, HRN 스케줄링 알고리즘 RR ( Round Robin )FCFS(FIFO) + TimeSlice SRT ( Short Remaining Time ) MLQ ( Multi Level Qu..

운영체제컴퓨터와 사용자간의 상호교신을 담당하는 시스템 소프트웨어(프로그램)사용자와 하드웨어 사이에 존재한다 운영체제 역할 사용자 측면프로그램 수행입출력 연산파일시스템 조작오류 탐지통신 시스템 측면모니터링보호자원 할당 운영체제 주요 기능 프로세스 관리적절한 CPU 자원 배정 프로세스의 생성과 제거스케줄링교착상태 방지 보조기억장치 관리저장소 할당남는 공간 관리 파일 관리파일, 폴더(=디렉토리) 생성과 제거보조기억장치에 있는 파일을 부를 수 있도록 매핑 장치 관리 메모리 관리기억 공간의 할당과 회수 시스템 보호세마포어 네트워킹토큰 링 방식 명령어 해석컴파일러 커널(운영체제의 가장 핵심 부분) 커널 ( Kernel ) 운영체제의 핵심, 시스템 하드웨어와 User Application 연동을 위하여 보안..

보조 기억 장치RAID ( Redundant Array of Independent Disks ) 처리속도, 데이터 보호를 목적으로 여러 DISK를 중복성을 가진 하나의 논리적인 Disk(Array)로 변환하는 저장 장치 NAS, DAS에서 사용되는 기술이다 RAID 0데이터의 중복 없이 여러개의 디스크에 분할해서 저장데이터 분산으로 속도를 올리기 위해 사용 RAID 1데이터를 똑같이 유지(중복)해서 디스크에 저장한다안전성을 위해 사용 RAID 2자료를 bit 별로 분산해서 저장한다1bit가 깨지더라도 나머지 bit들이 살아있게 된다ECC(오류정정디스크) 사용 (다른 디스크) RAID 3RAID 2와 동일하나 byte단위로 저장Parity 데이터를 저장한다 (같은 디스크에) RAID 4RAID 3과 동일..

캐시메모리(Cache Memory) 캐시 CPU와 주기억장치의 속도차이에 따른 성능 저하를 줄이기 위해 임시로 지역성을 만들어서 저장해두는것테이블 형태로 캐시 라인에 적재 블럭(Block) 캐시와 메모리 간의 데이터 교환 단위 Block이 클수록 지역성이 늘어난다 Mapping Function 어떤 주기억장치 블록들이 어느 캐시 라인을 공유할 것인지 결정하는 법 ( 어느 정보를 캐시에 넣을지 선택하는 것 ) 직접 사상캐시 라인의 위에서부터 차곡차곡 넣는 것 완전-연관 사상임의의 캐시 라인에 적재하는 것 세트(집합)-연관 사상직접 사상도 가능, 완전-연관 사상도 가능 Replace Algorithm 캐시가 꽉 찼을때 어떤 블록을 지울 것인지 RandomFIFO ( First In First O..