
1. I/O Hardware PC BUS 구조I/O Hardware DeviceController(host adapter)1. Status Register통신방법 :PollingInterrupt상태를 반복해서 확인하기에 busy waiting 발생다른 프로세서에 양도빠른 장치느린 장치2. Command Register통신방법:Memory Mapped I/OI/O-Mapped I/OI/O 장치를 memory 블록으로 취급In, Out 명령어를 통해 장치 접근해당 주소에 memory load, store -> 장치 접근 + : 구조 simplify, 한번에 많은 데이터 및 장치 접근+ : 메모리 주소공간 낭비x, 빠르다 - : 메모리 주소 공간 차지, 잠재적 복잡도- : 복잡한 프로그래밍, 연결과 접근하는..

1. Background프로세스는 실행 중인 프로그램을 말하는데 역기서 실행 중이라는 말은 main memory에 올라갔다는 뜻이다.main memory와 register는 cpu가 직접 접근할 수 있는 유일한 저장소이다.메모리 단위는 address+read요청 또는 address+data and write 요청만 처리한다.main memory는 많은 cycle을 소모하여 stall을 초래한다.(약 100cycle)cache는 main memory와 cpu register 사이 위치한다. protection프로세스를 다른 프로세스로부터 보호한다.모든 프로세스는 해당 프로세스의 address process 내에 있는 주소에만 접근할 수 있어야 한다. logical(논리적) address space를 정의하..

1. Common Concurrency Problems (일반적인 동시성 문제)Non Deadlock의 대부분은 아래 두 가지 case이다.Atomicity violation(원자성 위반)lock을 안걸어서 여러 메모리 접근의 일관성이 깨진다. 원하는 serializability(직렬화)가 깨진다.ex) MySQL에서 두 thread가 동일한 변수 (proc_info)에 접근하는 경우→ 해결! 공유변수 접근시 lock을 걸어준다.Order violation(순서 위반) 두 메모리 접근 간의 원하는 순서가 뒤바뀌는 문제실행 순서가 보장되지 않는다ex) thread가 변수를 초기화하기 전에 접근하려는 경우→ 해결! 조건변수를 사용해 순서를 보장한다. 2. Deadlock(교착상태)deadlock은 threa..

1. 파이프라이닝의 이해파이프라이닝은 여러 명령어가 중첩되어 실행[overlapping execution]되는 구현기술이다.파이프라이닝을 사용하면 성능이 향상되는 이유는 각 단계를 병렬로 동작시켜 같은 시간에 더 많은일을 처리할 수 있도록한기 때문이다.파이프라이닝은 처리 시간은 오히려 증가시키지만, 처리량을 극대화시켜 시간을 감소시킨다. 2. Pipeline과 Datapath 제어우선 명령어는 다음과 같이 5단계로 나눌 수 있다.IF (Instruction Fetch): 명령어 인출ID (Instruction Decode): 명령어 해독 및 레지스터 파일 읽기EX (Execution / Address Calculation): 실행 또는 주소 계산Mem (Memory Access): 메모리 접근WB (Wr..

1. Principle of Locality (지역성)프로그램은 주소 공간 내의 비교적 작은 부분만 사용한다. ① Temporal Locality (시간적 지역성) : 한번 사용했던 것은 가까운 시간내에 다시 사용될 가능성이 높다. ex) 반복문 ② Spatial Locality (공간적 지역성) : 한번 사용했던 근처의 다른 항목들이 사용될 가능성이 높다. ex) 배열- Locality 장점 : 메모리 계층 구성, disk(CPU)에 모두 저장, DRAM - Main memory, SRAM - Cache Memory 2. Memory Hierarchy L..

6-4. Hardware Support for Synchronization- Peterson's solution과 같은 sw기반 해결책은 올바른 작동을 보장하지 못한다.- 다음 Hardware명령어는 임계구역(Critical Section)문제를 해결해주며 Atomic(원자성)을 보장한다. Test-And-Set instruction -> spinlock 잘돌아가도록! : 상호배제만 구현 (Mutual Exclusion)typedef struct __lock_t { int flag;} lock_t;void init(lock_t *lock) { // 0 은 락이 획득 가능한 상태를 표시, 1 은 락을 획득했음을 표시 lock−>flag = 0;}void lock(lock_t *lock) { ..

[ 2-1. Oprerating-System Service ]운영체제는 프로그램과 사용자에게 프로그램 실행환경과 서비스 제공. 더보기▶ OS 서비스사용자 인터페이스 (UI)프로그램 수행 (메모리에 load)I/O(입출력) 연산파일시스템 조작통신 (Communication)오류 탐지자원할당(동시에 수행될 때) : 사용자보다는 resource sharing 통해 시스템의 효율적 동작 보장Logging보호와 보안[ 2-2. User & OS Interface ]CLI(Command Line Interpreter) : 명령어 해석기, "셸"GUI(User OS Interface): 데스크탑(마우스 o), 스마트폰 or 태블릿(터치스크린 인터페이스 so, 마우스 x)[ 2-3. System Call ]사용자 프로..