CS/OS
[운영체제](반효경) 11강. Disk Management And Scheduling
[운영체제](반효경) 11강. Disk Management And Scheduling
2022.10.14Disk의 구조 logical block 디스크의 외부에서 보는 디스크의 단위 정보 저장 공간들 주소를 가진 1차원 배열처럼 취급 정보를 전송하는 최소 단위 Sector Logical block이 물리적인 디스크에 매핑된 위치 Sector 0은 최외곽 실린더의 첫 트랙에 있는 첫번째 섹터이다 → 약속! Disk Scheduling Access time의 구성 Seek time (대부분의 시간을 차지함) 헤드를 해당 실린더로 움직이는데 걸리는 시간 Rotational latency 헤드가 원하는 섹터에 도달하기까지 걸리는 회전 지연시간 Transfer time (작은 시간) 실제 데이터 전송 시간 Disk bandwidth 단위 시간 당 전송 된 바이트 수 Disk Scheduling Seek time을 ..
[운영체제](반효경) 11강. File System
[운영체제](반효경) 11강. File System
2022.10.14File And File System File “A named Collection of related information” 일반적으로 비휘발성의 보조기억장치에 저장 운영체제는 다양한 저장장치를 file이라는 동일한 논리적 단위로 볼 수 있게 해줌 Operation create, read, write, reposition(lseek) - 파일의 포인터를 이동, delete, open, close 등 File attribute(혹은 파일의 metadata라고도 일컬음) 파일 자체의 내용이 아니라 파일을 관리하기 위한 각종 정보들 파일 이름, 유형, 저장된 위치, 파일 사이즈 접근 권한(읽기/쓰기/실행), 시간(생성/변경/사용), 소유자 등 File System 운영체제에서 파일을 관리하는 부분 파일 및 파..
[운영체제](반효경) 10강. Virtual Memory
[운영체제](반효경) 10강. Virtual Memory
2022.10.14이 챕터에서는 운영체제가 페이징 기법을 사용하는 것을 가정한다. (대부분의 시스템도 페이징 기법을 채택함) Demand Paging 실제로 필요할 때 page를 메모리에 올리는 것 I/O양의 감소(?) Memory사용량 감소 빠른 응답 시간 더 많은 사용자 수용 Valid / Invalid bit의 사용 Invalid의 의미 사용되지 않는 주소 영역인 경우(아래 그림의 6, 7번) 페이지가 물리적 메모리에 없는 경우(아래 그림의 1, 3, 4) 처음에는 모든 page entry가 invalid로 초기화 address translation 시에 invalid bit이 set되어 있으면 → “Page Fault” Page Falut Invalid page를 접근하면 MMU가 trap을 발생시킴(페이지 폴트 ..
[운영체제](반효경) 9강. Memory Management
[운영체제](반효경) 9강. Memory Management
2022.10.13Logical versus Physical Address Logical address( = virtual address) 프로세스마다 독립적으로 가지는 주소 공간 각 프로세스마다 0번지부터 시작 CPU가 보는 주소는 logical address임 Physical address 메모리에 실제 올라가는 위치 💡 주소 바인딩: 주소를 결정하는것 Symbolic Address(변수이름, 함수이름) → Logical Address → Physical Address 그렇다면 논리 주소가 물리적인 주소로 결정되는 시점이 언제인가? 주소 바인딩(Address Binding) - 물리적인 메모리가 결정되는 시점 (* 현대의 OS는 논리주소가 담긴 실행파일이 통으로 메모리에 올라가지 않지만, 이 챕터에서는 그런 상황을 가..
[운영체제](반효경) 8강. Deadlock
[운영체제](반효경) 8강. Deadlock
2022.08.09The Deadlock Problem DeadLock 일련의 프로세스들이 서로가 가진 자원을 기다리며 block된 상태 Resource(자원) 하드웨어, 소프트웨어 등을 포함하는 개념 ex) I/O Device, CPU cycle, memory space, semaphore 등 프로세스가 자원을 사용하는 절차(요청, 할당, 사용, 반납) Request, Allocate, Use, Release 데드락 예시 시스템에 2개의 테이프 드라이버가 있는데, 프로세스 P1과 P2가 각각 하나의 테이프 드라이버를 보유한 채 다른 하나를 기다리고 있을 때 Binary semaphores A and B Deadlock 발생의 4가지 조건 Mutual exclusion(상호 배제) 매 순간 하나의 프로세스 만이 자원을 사..
[운영체제](반효경) 7강. Process Synchronization
[운영체제](반효경) 7강. Process Synchronization
2022.08.09Process Synchronization 데이터의 접근 Race Condition 1) 공유 메모리를 사용하는 프로세스들 2) 커널 내부 데이터를 접근하는 루틴들 간(시스템콜) OS에서 언제 Race Condition이 발생하는가? 1. Kernel 수행 중 인터럽트 발생 시 inturrupt를 disable시켜서 해결. 순차적으로 하도록! 2. Process가 System call을 하여 Kernel mode로 수행중인데 context switch가 일어나는 경우 3. Multiprocessor에서 shared memory 내의 kernel data Process Synchronization 문제 공유데이터 shared data의 동시 접근 concurrent access는 데이터의 불일치 문제 in..
[운영체제](반효경) 6강. CPU Scheduling
[운영체제](반효경) 6강. CPU Scheduling
2022.08.09CPU Scheduling CPU and I/O Bursts in Program Execution CPU-burst Time의 분포 여러 종류의 job(process)들이 섞여있기 때문에 CPU 스케줄링이 필요하다. 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 ..
[운영체제](반효경) 5강. Process Management
[운영체제](반효경) 5강. Process Management
2022.08.09Process Management 프로세스 생성(Process Creation) Copy-on-write(COW) - write가 발생할때 Copy를 하겠다. 공유를 하다 자식의 내용이 수정되면 그때 부모의 Code Data Stack을 복사하겠다. 부모 프로세스가 자식 프로세스를 생성 프로세스의 트리(계층 구조) 형성 프로세스는 자원을 필요로 함 운영체제로부터 받는다. 부모와 공유한다 자원의 공유 공유하는게 좋으나 별개의 프로세스이기 때문에 독립적으로 가지고 있는게 원칙이다 부모와 자식이 모든 자원을 공유하는 모델 일부를 공유하는 모델 전혀 공유하지 않는 모델 수행(Execution) 부모와 자식은 공존하며 수행되는 모델 자식이 종료(terminate)될 때까지 부모가 기다리는(wait=blocked)..
[운영체제](반효경) 4강. Process(2)
[운영체제](반효경) 4강. Process(2)
2022.08.09Thread 💡 “A thread(or lightweight process) is a basic unit of CPU utilization” Thread의 구성 Program Counter Register Set Stack Space Thread가 동료 Thread와 공유하는 부분***(=Task)*** Code Section Data Section OS Section 전통적인 개념의 heavyweight process는 하나의 thread를 가지고 있는 task로 볼 수 있다. 다중 스레드로 구성된 태스크 구조에서는 하나의 서버 스레드가 blocked(wating) 상태인 동안에도 동일한 태스크 내의 다른 쓰레드가 실행(Running)되어 빠른 처리를 할 수 있다.(=비동기처리?) 동일한 일을 수행하는..
[운영체제](반효경) 4강. Process(1)
[운영체제](반효경) 4강. Process(1)
2022.08.09프로세스 프로세스의 개념 💡 “Process is a program in execution” - 프로세스는 실행중인 프로그램이다. 프로세스의 문맥(Context) CPU 수행상태를 나타내는 하드웨어 문맥 Program Counter 각종 Register 프로세스의 주소공간 code, data, stack 프로세스 관련 커널 자료 구조 PCB(Process Control Block) Kernel Stack 프로세스의 상태(Process State) *본 수업은 CPU가 1개인 컴퓨터를 기준으로 설명함 프로세스는 아래와 같은 상태가 번갈아가며 수행된다. Running CPU를 잡고 instruction을 수행중인 상태 Ready CPU를 기다리는 상태(메모리 등 다른조건을 모두 만족한) Bloacked(wa..
[운영체제](반효경) 3강. SystemStructure & Program Excution(2)
[운영체제](반효경) 3강. SystemStructure & Program Excution(2)
2022.08.09컴퓨터 시스템 구조 동기식 입출력과 비동기식 입출력 1. 동기식 입출력(synchronous I/O) I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어감 구현방법 1 I/O가 끝날 때까지 CPU를 낭비시킴 매시점 하나의 I/O 만 일어날 수 있음 구현방법 2 I/O가 완료될 때까지 해당 프로그램에게서 CPU를 빼앗음 I/O 처리를 기다리는 줄에 그 프로그램을 줄 세움 다른 프로그램에게 CPU를 줌 2. 비동기식 입출력(asynchronous I/O) I/O가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어감 보통 Wirte 작업들은 비동기식으로 이루어짐(완료됐는지 확인이 필요가 없을때) → 구현하기 나름이다 💡 두 경우 모두 I/O의 완료는 인..
[운영체제](반효경) 3강. SystemStructure & Program Excution(1)
[운영체제](반효경) 3강. SystemStructure & Program Excution(1)
2022.08.09컴퓨터 시스템 구조 CPU가 매 클럭 사이클마다 메모리에 있는 기계어(4바이트정도의 인스트럭션)를 하나씩 처리 CPU는 프로그램 카운터가 가리키고 있는 메모리주소를 계속 읽는역할만 함 하드디스크는 보조기억장치면서 I/O 디바이스의 역할도 동시에 수행한다. 보통 CPU는 메모리랑만 이야기하지만 I/O랑 이야기할수도(이때 사용되는게 device controller) Mode Bit - 이 프로그램이 운영체제인지 어떤사용자프로그램인지? Register - 메모리보다 빠른 공간 Interrupt line - CPU가 라인 하나를 실행할 때마다 Interrupt가 있는지를 체크 timer - 특정 프로그램의 CPU의 독점을 막는 역할(시간이 끝나면 interrupt를 검 - CPU가 인스터럭션을 실행하다가 int..