강의

    Computer Architecture - Pipeline

    Computer Architecture - Pipeline

    목차 배경 파이프라인과 레지스터 관계 파이프라인 예시 파이프라인 파이프라인 배경(pipeline) 일반적으로 파이프라인은 한 데이터 처리 단계의 출력이 다음 단계의 입력으로 이어지는 형태의 구조를 말합니다. 이렇게 연결된 데이터 처리 단계는 한 여러 단계가 병렬적으로 수행될 수 있어 효율성의 향상을 꾀할 수 있습니다. 여기서 파이프라인도 프로세서에서 성능을 높이기 위해서 명령어 처리를 여러 단계로 나누어 단계별로 동시에 수행하여 병렬화 시키는 것을 말합니다. 프로세스 고속화, 처리량 상승효과를 얻습니다. ARM 파이프라인 초기 ARM7TDMI까지의 ARM 코어는 3단계 파이프라인을 가졌습니다. 이후 나올 모든 여러 단계의 파이프라인도 이 3단계 파이프라인 단계를 더 나눈 형태를 보입니다. ARM9TDMI..

    OS - 가상 메모리

    OS - 가상 메모리

    목차가상메모리(가상주소공간, Demand Paging, Free frame list)페이지 교체(FIFO, OPT, LRU, LFU, second chance)Thrashing Prevention(Thrashing, working-set 모델) 배경코드가 실행되기 위해서는 메모리에 있어야 하지만 전체 프로그램은 거의 사용되지 않고 보통 프로그램의 일부만이 반복적으로 사용됩니다. 그래서 우리는 굳이 프로그램 전체를 메모리에 올리는게 아니라 부분적으로 필요한 부분만 올리는 방법을 사용하고 그 덕분에 효율적인 메모리 사용으로 더 많은 프로그램을 동시에 돌릴 수 있고, 메모리에 프로그램 일부만 로드/스왑하기 때문에  더 적은 I/O 만으로도 가능하니 각 사용자 프로그램은 더 빠르게 돌릴 수 있습니다. 가상 메모..

    OS - 메인메모리(Main Memory)

    OS - 메인메모리(Main Memory)

    목차배경(배경, 주소 바인딩, 동적 로딩/링킹)메모리할당(연속 메모리 할당, 가변 파티션, 단편화)페이징페이지 테이블 구조(계층, 해시, 역)스와핑 배경프로세스는 실행 중인 프로그램을 뜻하는데, 여기서 실행 중이라는 뜻은 프로그램이 메인 메모리에 올라갔다라는 의미입니다. 기본적으로 프로세스는 디스크(SSD, HDD...etc)에 프로그램(코드)를 메모리에 불러오는 것입니다.메인 메모리(RAM)와 레지스터는 오직 CPU만 직접적으로 엑세스할 수 있는 저장장치(Storage) 입니다. 레지스터에 접근하는 것은 1 CPU 사이클 혹은 더 적은 시간 내에 완료되지만 메인 메모리에 접근은 여러 사이클이 걸릴 수 있습니다. 캐시는 메인메모리와 CPU 레지스터 사이에 위치합니다. 프로세스가 메모리에 올라가 있다면 각..

    OS - Deadlock

    OS - Deadlock

    목차 데드락 데드락 방지 데드락 회피 데드락 허용(탐지, 회복) 데드락 무시 데드락(Deadlock, 교착상태) 데드락? OS에서 데드락이란, 2개 이상의 작업이 서로 상대방의 작업이 끝나기만을 영원히 기달려서 결국 아무것도 하지 못하고 있는 상태입니다. 데드락은 아래 4가지 필요 조건을 다 만족해야지 발생합니다. 1. 상호 배제(Mutual Exclusion) : 한 순간에 오직 하나의 프로세스만 자원을 사용할 수 있어야 합니다. 2. 점유 대기(Hold and wait) : 자원을 적어도 하나 보유하고, 다른 프로세스가 점유하고 있는 자원을 얻기 위해 대기하는 프로세스가 있어야 합니다. 3. 비선점(No preemption) : 비선점 형태로 Task가 끝나야지만 자원을 놓아야 합니다. 4. 순환 대..

    OS - 동기화 예시

    OS - 동기화 예시

    목차 생산자 소비자 문제 (Producer-Consumer) 독자-저자 문제 (Reader-Writer) 식사하는 철학자 문제(Dining-Philosophers problem) 커널 동기화 동기화 예시(Synchronization Examples) 클래식 동기화 문제 3가지 Bounded Buffer problem = 생산자-소비자문제(Producer-Consumer problem) Readers and Writers problem Dining-Philosophers problem 생산자-소비자 문제(Producer-Consumer, Bounded Buffer problem) 생산자-소비자 문제는 여러 개의 프로세스를 어떻게 동기화할 것인가에 관한 고전적인 문제입니다. 한정 버퍼 문제(Bounded b..

    OS - 동기화 툴

    OS - 동기화 툴

    목차임계구역(Critical Section)Peterson's Solution동기화를 위한 하드웨어 지원(메모리 배리어, 하드웨어 명령, 원자적 변수)뮤택스 락세마포모니터LivenessLock Free동기화 툴(Synchronization Tools)배경(Background)프로세스는 병행/병렬 실행이 가능합니다. 이때 여러 프로세스가 동시에 공유 데이터에 접근하여 경쟁 상태(race condition)가 발생해 데이터에 불일치가 생겨 데이터 무결성에 문제가 생깁니다. 멀티코어, 멀티 스레드 개발이 중요해지면서 자원 공유 가능성이 높은 여러 스레드를 경쟁 상태가 더 빈번해집니다. 이를 위해 각 스레드를 의도에 맞춰 동기화할 필요가 있습니다.*경쟁 상태(race condition)란 공유 자원에 대해 여러..

    OS - CPU Scheduling

    OS - CPU Scheduling

    목차CPU 스케줄링 (선점/비선점 - preemptive/nonpreemptive, Dispatcher)스케줄링 알고리즘 (FCFS, Round-Robin, SJF ...etc)스레드 스케줄링 (멀티 스레드 멀티 코어, Load balancing, 캐시 선호도)실시간 CPU 스케줄링 (Event latency, Rate monotonic, EDF)실제 OS 사례 CPU Scheduling컨셉 : "대부분의 작업은 CPU 사용이 짧다. → CPU가 작업 사이 쉬는 시간(메모리 로드/스토어)에 다른 작업을 시켜 쉬지 못하게 한다"를 통해 CPU 활용을 끌어 올리는것이 메인 컨셉입니다. 이유는 CPU, I/O, Memory에 작업 속도, 시간이 다른 점에서 각 작업들을 효율적으로 배분하는 생각입니다.CPU S..

    Computer Architecture - Processor Mode

    Computer Architecture - Processor Mode

    목차 PSR 프로세서 모드 예외 처리 PSR(Program Status Registers) PSR은 말 그대로 현재 프로그램이 가지고 있을 상태/옵션을 저장하는 레지스터입니다. 현재 상태인 CPSR(Current PSR)과 5개의 SPSR(Saved PSR)이 있으며, SPSR은 프로세서 모드에 각각 1개씩 총 5개의 모드에 5개의 SPSR이 있습니다. 이 PSR들은 특수한 명령어들로만 조작 가능합니다. PSR은 32비트의 공간을 쪼개서 상태/옵션에 대한 정보를 담습니다. ○Condition code flags : ALU의 연산 결과에 flag 정보. N(마이너스), Z(0), C(Carry. 올림/내림,Shift연산 넘어갈 때), V(oVerflow 발생인 경우) ○ Sticky Overflow fla..