CS 89

Thread

A thread (or lightweight process) is a basic unit of CPU utilization. 하나의 프로세스 내부에 CPU 수행 단위가 여러개 인 것이 스레드이다. 쓰레드라는 것은 현재 CPU가 현재 어디를 수행하는가(Program Counter)만 여러개 두는 것이다. 프로세스 하나에 CPU 수행 단위만 여러 개임. instruction을 위해서는 현재 어느 부분 수행중인지 알려주는 PC가 있어야 하는데 현재 어느 부분을 수행 중인지 알려주는 Program Counter가 있어야 하는데 이것을 별도로 유지한다. PC, register stack 같은 것만 별도로 가지고 나머지는 공유한다.(죄다 별도로 가지면 낭비임) * Thread의 구성 - program counter..

CS/operating system 2021.03.02

File System Implementation

Contiguous Allocation Linked Allocation Indexed Allocation 하나의 파일이 디스크에 연속해서 저장되는 것을 말한다. directory는 파일의 메타데이터를 가지고 있다. * 단점 - external fragmentation - file grow가 어렵다. -> 파일 생성 시 얼마나 큰 hole을 배당할 것인가? -> grow 가능 (파일이 커질 걸 생각해서 미리 자리 배당하기) vs 낭비 (internal fragmentation) * 장점 - fast i/o -> 한번의 seek/rotation으로 많은 바이트 transfer -> realtime file 용으로, 또는 이미 run 중이던 process의 swapping 용 swap area -> 어차피 프..

CS/operating system 2021.03.01

File System (1/1)

* File - A named collection of related information - 일반적으로 비휘발성 보조기억장치에 저장한다. - 운영체제는 다양한 저장장치를 file이라는 동일한 논리적 단위로 볼 수 있게 해준다. - operation: create, read, write, reposition(/seek), delete, open, close * File attribute (혹은 파일의 metadata) - 파일 자체의 내용이 아니라 파일을 관리하기 위한 각종 정보들 파일 이름, 유형, 저장된 위치, 파일 사이즈 접근 권한 (read/write/execution) 시간 (생성, 변경, 사용), 소유자 등 * File System - 운영체제에서 파일을 관리하는 부분 - 파일 및 파일의 메타..

CS/operating system 2021.02.28

Process Synchronization: 프로세스 동기화 (2/2)

자원을 획득하고 반환하는 걸 처리하는 것을 추상화한 것이다. Semaphores S - integer variable (변수 값 = 정수, 변수가 1이라면 lock, unlock에 활용하고 자원의 개수가 5개라면 5개가 사용 가능) - 아래의 두 가지 atomic 연산에 의해서만 접근 가능하다. P(S)는 공유데이터(자원)을 얻는 연산이다. 그러니까 lock을 거는 과정이라고 생각해도 된다. 세마포어 객체 mutex는 1로 초기화되어 있다. (1개가 크리티컬 섹션에 들어갈 수 있다는 뜻임) busy - wait는 효율적이지 못함 ( = spin lock) block & wake up 방식의 구현 (= sleep lock) 락을 못 얻으면 blocked (잠들어버리기) -> 쓸데없이 cpu 낭비하는거 막음..

CS/operating system 2021.02.28

Process Synchronization: 프로세스 동기화 (1/2)

Concurrency: 병행 제어 A가 ++하는 동안 B가 count 가져가서 -1 한다면 -1뺀 결과만 저장된다. 원랜 0 저장되어야 하는데... S-Box(Memory Address Space)를 공유하는 E-Box(CPU Process)가 여럿 있는 경우 Race condition(경쟁상태)의 가능성이 있다. 즉 여러 주체가 하나의 데이터에 동시 접근 하려고 할 때 경쟁 상태의 가능성이 있는 것이다. * E - box? CPU Process: MultiProcessor System, 공유 메모리를 사용하는 프로세스들. 커널 내부 데이터를 접근하는 루틴들 간 예) 커널모드 수행 중 커널모드로 다른 루틴 수행할 때) 1. 커널 수행 중 인터럽트 발생 시 2. 프로세스가 시스템 콜을 하여 커널 모드로 수..

CS/operating system 2021.02.26

Deadlock: 교착 상태 (2/2)

Deadlock Detection * resource type 당 자원이 하나인 경우 = single instance - 자원 할당 그래프에서 cycle이 곧 deadlock임 * resource type 당 자원이 여러개인 경우 = multiple instance - banker's algorithm과 유사한 방법 활용 wait for graph algorithm - resource type당 single instance인 경우 - 자원 할당 그래프의 변형 - 프로세스만으로 node를 구성한다. - Pj가 가지고 있는 자원을 Pk가 기다리는 경우 Pk -> Pj * Algorithm: wait for graph에 사이클이 존재하는지를 주기적으로 검사한다. 시간 복잡도는 n^2임. resource typ..

CS/operating system 2021.02.26

Deadlock: 교착 상태 (1/2)

* Deadlock - 일련의 프로세스들이 서로가 가진 자원을 기다리며 block된 상태 * Resource (자원) - 하드웨어, 소프트웨어 등을 포함하는 개념 - 예) I/O serivice, CPU cycle, memory space, semaphore 등 - 프로세스가 자원을 사용하는 절차 (Request, Allocate, Usem Release) Deadlock Example 1 - 시스템에 2개의 tape drive가 있다. (하나 복사 - 다른 하나 paste) - 프로세스 p1과 p2 각각 하나의 tape drive를 보유한 채 다른 하나를 기다림 Deadlock Example 2 - Binary semaphores A and B Process0 P(A) P(B) Process1 P(B)..

CS/operating system 2021.02.25

Disk Management: 디스크 관리 (2/2)

3. 다중 디스크 환경에서의 스케줄링 여러 사용자를 동시에 서비스하는 서버에서는 다중 디스크를 사용한다. 왜냐하면 여러 디스크로 동시에 서비스할 수 있고 일부 디스크에 오류가 발생해도 지속적인 서비스가 가능하기 때문이다. 이러한 다중 디스크 환경에서는 디스크 내에서의 입출력 요청의 처리 순서만 결정하는 것이 아니라 어떤 디스크의 작업을 수행할 것인지를 고르는 문제까지 해결해야 한다. 최근에는 전력 소모를 줄이는 것이 디스크 관리의 또 다른 중요한 목표로 인식되고 있다. 4. 디스크의 저전력 관리 1) 비활성화 기법 디스크의 상태는 전력 소모를 기준으로 크게 4가지 상태인 활동(active), 공회전(idle), 준비(standby), 휴면(sleep)으로 나눌 수 있다. 이 때 현재 상태에서 다른 상태로..

CS/operating system 2021.02.24

Disk Management: 디스크 관리 (1/2)

Disk Management * Physical Formatting (Low-Level Formatting) - 디스크를 컨트롤러가 읽고 쑬 수 있도록 섹터들로 나누는 과정 - 각 섹터는 header + 실제 data(보통 512 byte) + trailer로 구성된다. - header과 trailer는 section number, ECC(Error - Connectiong Code)등의 정보가 저장되며 controller가 직접 접근 및 운영 * Partitioning - 디스크를 하나 이상의 실린더 그룹으로 나누는 과정 - OS는 이것을 독립적 disk로 취급 * Logical Formatting - 파일 시스템을 만드는 것 - FAT, inode, free space 등의 구조를 포함한다. * Bo..

CS/operating system 2021.02.23

Virtual Memory: 가상 메모리 (2/2)

3. 페이지 프레임의 할당 (page frame의 allocation) Allocation problem: 각 process에게 얼마만큼의 page frame을 할당할 것인지에 대한 문제 allocation의 필요성 - 메모리 참조 명령어 수행 시 명령어, 데이터 등 여러 페이지를 동시에 참조한다. 명령어 수행을 위해 최소한 할당되어야 하는 frame의 수가 있음 - loop를 구성하는 page들은 한꺼번에 allocate되는 것이 필요함. 왜냐하면 최소한의 allocation이 없으면 매 loop마다 page fault나기 때문이다. allocation scheme - equal allocation(균등 할당) 모든 프로세스에게 똑같은 갯수 할당해주기 - proportional allocation(비례..

CS/operating system 2021.02.22