대학공부 69

4. Threads & Concurrency

OverviewThread: a light-weight processCPU 사용의 기본 단위이며 thread ID, a program counter(PC), a register set, stack으로 구성같은 프로세스에 속한 스레드는 code section, data section, other OS resources를 공유하나의 애플리케이션은 여러 스레드를 제어하여 독립된 프로세스로 구현될 수 있음웹 서버는 이미지를 표시하는 스레드와 네트워크에서 데이터를 받는 스레드를 가질 수 있음하나의 애플리케이션은 여러 개의 비슷한 태스크를 수행서버가 요청을 수신할 때마다 단일 프로세스를 생성 -> 많은 시간과 자원을 소모웹 서버 프로세스가 멀티스레드 방식이라면 서버는 클라이언트 요청을 듣기 위한 별도의 스레드를 생..

3. Processes

Process Concept운영체제가 실행하는 프로그램 종류Batch system - jobsTime-shared systems - user programs or tasksProcess: 실행 중인 프로그램상태 정보는 program counter의 값과 레지스터의 내용으로 표현됨Text Section: 실행가능한 코드Data Section: 전역 변수Heap Section: 프로그램 실행 동안 동적으로 할당된 메모리Stack Section: 함수 호출 시 임시 데이터 저장소(매개변수, 지역변수, 반환 주소)Program: 디스크에 저장된 passive entity (실행가능한 파일)Process: 실행가능한 파일이 메모리에 로드된 active entity  Process State프로세스 실행 동안 상태..

2. OS structures

Operating System ServicesUser interface: GUI, CLI, Touch-screen interfaceProgram execution: 프로그램을 실행하기 위해서는 메모리에 로드해야 함I/O operations: 실행 프로그램이 I/O를 요구할 수 있음File-system manipulation: 프로그램은 파일이나 폴더를 읽고, 쓰고, 만들고, 삭제하고, 조회하고, 허가 관리를 함Communnicatins: 실행 중인 프로세스간 발생 - shared memory, message passing을 통해 이루어짐Resource allocation: 동시에 여러 사용자나 작업이 실행될 때 자원이 할당되어야 함Logging: 프로그램의 컴퓨터 자원 사용을 추적Protection an..

7. Concurrency Control

Uncontrolled Sharing Problems1. Lost Update Problem-> T1에 의해 쓰여진 값을 잃게 된다. 2. Uncommitted Dependency Problem-> T2에서 커밋하지 않은 값을 T1이 읽어 올바르지 않은 값을 사용하게 된다. 3. Inconsistent Analysis Problem-> T1이 A를 먼저 읽고 B를 T2보다 나중에 읽게 되면 올바르지 않은 값을 계산한다. SchedulesSerializable Schedule: 결과가 순차적으로 트랜잭션을 실행한 것과 동일한 스케줄Conflict Serializable Schedule: 연산 순서를 재배치해서 직렬 가능하게 만들 수 있는 스케줄이를 보장하는 방법2PLP(2-Phase Locking Prot..

6. Recovery System

Failure ClssificationTransaction failureLogical errors: 내부 오류에 의해 트랜잭션이 끝나지 않음System errors: deadlock 등에 의해 데이터베이스 시스탬이 트랜잭션을 종료시킴System crash: 정전이나 하드웨어 또는 소프트웨어 오류로 인한 시스템 오류Fail-stop assumption: 비휘발성 저장 장치의 내용은 시스템 오류로 인해 망가지지 않는다고 가정Disk failure: 디스크 오류가 저장 장치를 파괴하는 상황 - 감지 가능하다고 가정 Storage Structure & Data AccessPhysical blocks: 디스크에 존재하는 블록Buffer blocks: 메인 메모리에 일시적으로 저장되는 블록디스크와 메인 메모리 간의..

5. Transactions

Transactiontransaction: a unit of progam execution that accesses and possibly updates various data items.예를 들어 A 계좌에서 B 계좌로 돈을 송금하기 위한 트랜잭션Two main issueshardware failures and system crashesconcurrent execution of multiple transactions ACID Properties데이터베이스의 데이터 무결성(integrity)을 보존하기 위해 데이터베이스 시스템이 보장해야 하는 속성들Atomicity (원자성): 모든 트랜잭션은 데이터베이스에 적절히 반영되거나 아무것도 반영되지 않아야 한다.Consistency (일관성): 독립된 트랜잭션..

4. Relational Database Design (Normalization)

Functional Dependencies (함수 종속성)legal relationslegal relations r(R)legal relations를 위한 제약 조건다른 집합의 속성 값을 유일하게 식별할 수 있는 특정 집합의 속성 값들을 필요로 한다.함수 종속성은 키 개념의 일반화functional dependenciesrelation schema R에 속하는 a, b가 있을 때 함수 종속성 a -> bR의 모든 legal relation r(R)에 대해r의 임의의 두 튜플 t1과 t2가 a에서 동일한 값을 가지면 b에서도 동일한 값을 가져야 한다.K is a superkey for R iif K -> RK is a candidate key for R iifK -> R for no a ⊂ K, a -> ..

3. Database Design and E-R Model

Systems Development Life Cycle (SDLC)  Entity-Relationship Modeling-  사용자의 요구사항을 토대로 E-R Modeling을 수행 Example사용자 요구사항 E-R DiagramE-R(Database) Modeling데이터베이스는 엔티티들과 엔티티들 간의 관계의 모음으로 모델링될 수 있다. Entity SetsEntity: 다른 객체와 구별되고 존재하는 객체개념적인 객체개념적, 물리적으로 존재요구 명세에서 보통 명사Entities have attibutesEntity set: 같은 속성을 공유하는 같은 타입의 엔티티 집합 Weak Entity Setsweak entity set: primary key를 가지지 않는 entity setidentifyin..

2. SQL

Overview Domain Types in SQL- char(n): n 길이의 문자형- varchar(n): 최대 n 길이의 문자형- int: 정수- smallint: 작은 정수- numeric(p,d): 최대 자릿수 p, 소수점 이하 자릿수 d인 고정 소수점 숫자- real, double precision: 부동 소수점 및 배정밀도 부동 소수점 숫자- float(n): 최소 자릿수 n의 정밀도를 가지는 부동 소수점 숫자- date: 4 자리 연도와 월, 일을 포함하는 날짜- time: 시, 분, 초의 시간- timestamp: 날짜와 시간- interval: 시간의 간격 - 날짜, 시간, 타임스템프에 더해질 수 있음 DDL Views전체 논리적 모델이 아닌 일부만 보고 싶은 사용자들로부터 특정 데이터..