CS공부 10

[컴퓨터 네트워크] TCP와 UDP

한양대학교 이석복 교수님 강의를 들으며 작성했습니다. TCP(Protocol)신뢰성 있고 순서가 보장flow control(receiver의 속도에 맞춰 데이터 보냄)congestion control(sender slow down sending rate when network congested)HTTP(Web), FTP(file transfer), Telnet(remote login), SMTP(email)UDP(Protocol)신뢰성 없음connectionlessstreaming media, teleconferencing, DNS, Internet telephony* 패킷은 비트 단위Packet switching VS Circuit switching1Mbps/s linkeach user: 100 kb..

[친절한 SQL 튜닝] 1장 데이터 저장 구조 및 I/O 메커니즘

옵티마이저 힌트 SQL 옵티마이저는 순식간에 엄청나게 많은 연산을 한다. 그 과정에 옵티마이저가 사용하는 정보는 다음과 같다.-테이블, 컬럼, 인덱스 구조에 관한 기본 정보-오브텍트 통계: 테이블 통계, 인덱스 통계,  (히스토그램을 포함한) 컬럼 통계-시스템 통계: CPU 속도, Single Block I/O 속도, Multiblock I/O 속도 등-옵티마이저 관련 파라미터 주의사항1. 힌트 안에 인자를 나열할 땐 ','(콤마)를 사용할 수 있지만, 힌트와 힌트 사이에 사용하면 안된다./*+ INDEX(A A_X01) INDEX(B, B_X03) */ -> 모두 유효/*+ INDEX(C), FULL(D) */ -> 첫번째 힌트만 유효2. 테이블을 지정할 때 스키명까지 명시하면 안 된다SELECT /*..

[운영체제] CPU 스케줄링 (3) + Process Synchronization

Algorithm Evaluation Queueing models확률 분포로 주어지는 arrival rate와 service rate 등을 통해각종 performance index 값을 계산 Implementation(구현) & Measurement(성능 측정)실제 시스템에 알고리즘을 구현하여 실제 작업(workload)에대해서 성능을 측정 비교 Simulation (모의 실험)알고리즘을 모의 프로그램으로 작성후 trace를 입력으로하여 결과 비교  Process Synchronization -E-box가 여럿 있는 경우 Race Condition(경쟁 상태)의 가능성이 있음-Multiprocessor system-공유메모리를 사용하는 프로세스들커널 내부 데이터를 접근하는 루틴들 간(ex. 커널모드 수행..

[운영체제] CPU 스케줄링 (2)

Multilevel Queue-Ready queue를 여러 개로 분할1) foreground (interactive)2) background (batch-no human interaction)-각 큐는 독립적인 스케줄링 알고리즘을 가짐1) foreground-RR2) background-FCFS-큐에 대한 스케줄링이 필요Fixed priority schedulingTime slice: 각 큐에 CPU time을 적절한 비율로 할당(80% to foreground in RR, 20% to background in FCFS) Multilevel Feedback Queue -프로세스가 다른 큐로 이동 가능-에이징(aging)을 이와 같은 방식으로 구현할 수 있다-Multilevel-feedback-queue ..

[운영체제] CPU 스케줄링 (1)

CPU-burst Time의 분포 여러 종류의 job(=process)이 섞여 있기 때문에 CPI 스케줄링이 필요 -interactive job에게 적절한 response 제공 요망 -CPU의 I/O 장치 등 시스템 자원을 골고루 효율적으로 사용 프로세스으의 특성 분류 프로세스는 그 특성에 따라 다음 두 가지로 나눔 📍I/O-bound process -CPU를 잡고 계산하는 시간보다 I/O에 많은 시간이 필요한 job -many short CPU bursts 📍CPU-bound process 계산 위주의 job -few very long CPU bursts CPU Scheduler & Dispatcher CPU Scheduler Ready 상태의 프로세스 중에서 이번에 CPU를 줄 프로세스를 고른다 D..

[운영체제] 프로세스 관리(2)

스케줄러 (Scheduler) 1. Long-term scheduler(장기 스케줄러 or job scheduler) 시작 프로세스 중 어떤 것들을 ready queue로 보낼지 결정 프로세스에 memory(및 각종 자원)을 주는 문제 degree of Multiprogramming을 제어 time sharing system에는 보통 장기 스케줄러가 없음 (무조건 ready) 2. Short-term scheduler(단기 스케줄러 or CPU scheduler) 어떤 프로세스를 다음번에 running시킬지 결정 프로세스에 CPU를 주는 문제 충분히 빨라야 함(millisecond 단위) 3. Medium-Term Scheduler(중기 스케줄러 or Swapper) 여유 공간 마련을 위해 프로세스를 통..

[운영체제] 프로세스 관리 (1)

프로그램의 실행(메모리 load) process의 virtual memory의 주소 공간과 커널의 주소 공간은 code, data, stack으로 이루어져 있음 커널 주소 공간의 내용 사용자 프로그램이 사용하는 함수 ✓함수(function) 1. 사용자 정의 함수 자신이 프로그램에서 정의한 함수 2. 라이브러리 함수 자신의 프로그램에서 정의하지 않고 갖다 쓴 함수 자신의 프로그램의 실행 파일에 포함되어 있다 3. 커널 함수 운영체제 프로그램의 함수 커널 함수의 호출=시스템 콜 Mode bit=1 -> 사용자 모드 Mode bit=0 -> 모니터 모드=커널 모드=시스템 모드 프로세스의 개념 "Process is a program in execution" 프로세스의 문맥(context) -CPU 수행 상태를..

[운영체제] 컴퓨터 시스템의 구조(2)

📍인터럽트(Interrupt) 인터럽트 당한 시점의 레지스터와 program counter를 save한 후 CPU의 제어를 인터럽트 처리 루틴에 넘긴다 Interrupt(하드웨어 인터럽트): 하드웨어가 발생시킨 인터럽트 Trap(소프트웨어 인터럽트) -Exception: 프로그램이 오류를 범한 경우 -System call: 프로그램이 커널 함수를 호출하는 경우 Ex. -프로그램이 실행되다가 디스크에서 파일을 읽어와야 한다면 I/O작업은 특권명령이기 때문에 프로그램은 운영체제에 system call을 함 운영체제는 disc controller에 파일을 읽으라고 요청 -> 이 작업은 오래 걸리므로 다른 프로그램에게 먼저 cpu 넘김. disc controller가 파일을 다 읽으면 cpu에 interrupt..

[운영체제] 컴퓨터 시스템의 구조(1)

운영체제의 분류 동시 작업 가능 여부 1. 단일 작업(single tasking) 한 번에 하나의 작업만 처리 ex. MS-DOS 프롬프트 상에서는 한 명령의 수행을 끝내기 전에 다른 명령을 수행시킬 수 없음 2. 다중 작업(multi tasking) 동시에 두 개 이상의 작업 처리 ex. UNIX, MS Windows 등에서는 한 명령의 수행이 끝나기 전에 다른 명령이나 프로그램을 수행할 수 있음 사용자 수 1. 단일 사용자(single user) ex. MS-DOS, MS Windows 2. 다중 사용자(multi user) ex.UNIX, NT server 처리 방식 1. 일괄 처리(batch processing) -작업 요청의 일정량 모아서 한꺼번에 처리 -작업이 완전 종료될 때까지 기다려야 함 ..

[운영체제] 운영체제 개요

운영체제란? 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 운영체제의 목적 1. 컴퓨터 시스템의 자원을 효율적으로 관리🌟 -CPU, 메모리, I/O 장치 등의 효율적 관리 효율성: 주어진 자원으로 최대한의 성능을 내도록 형평성: 특적 사용자/프로그램의 지나친 불이익이 발생하지 않도록 -사용자 및 운영체제 자신의 보호 2. 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공 -운영체제는 동시 사용자/프로그램들이 각자 독자적 컴퓨터에서 수행되는 것 같은 환상을 제공 -하드웨어를 다루는 복잡한 부분을 운영체제가 대행 어떤 프로그램에게 CPU 사용권을 줄까? CPU 스케줄링 한정된 메모리를 어떻게 쪼개어 쓰지? 메모리 관리 디스크에 들어온 요청을 어떤..