1. File System Interface논리적(전체적) 구성, persistant storage"블록" 단위 저장장치 가상화File바이트의 배열inode number - lower level name 가지고 있다.- Data : 내용- inode(=meta data) : 속성성능, 신뢰성, 용량 ↑ Directory파일 또는 또 다른 디렉토리를 가리킨다. 형태의 목록을 가진다. fsync(): 즉시 기록한다(write)rename(): atomic call 구현한다. -> fsync() 즉시 저장할 시 문제가 될수도 있다. 재부팅시 파일크기가 0이되는 trunc로 열기 때문이다. 파일시스템은 mount이용해 단일 디렉토리 트리를 구성한다. 2. File System ImplementationVSFS..

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..

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 ]사용자 프로..