CS/operating system 28

Thread-safe의 의미

* Thread 쓰레드라는 것은 현재 cpu가 어디를 수행하는지를 알려주는 Program Counter를 여러개 두는 것이다. 쓰레드가 없을 때에는 프로세스 하나 당 Program counter도 하나만 있다. 그렇지만 쓰레드가 존재한다면, 프로세스 안에도 Program Counter도 쓰레드의 수만큼 존재하게 된다. 쓰레드의 존재 이유는 경제성에 있다. 쓰레드는 Program Counter를 제외하고 프로세스의 code section, stack space와 같은 다른 영역을 공유하게 되면서 경제성을 추구할 수 있다. 쓰레드를 사용하면 병렬성이 좋아지고, 자원이 절약된다. * Thread-safe Thread-safe란 멀티 스레드 프로그래밍 환경에서 모든 스레드가 올바르게 작동하고 여러 개의 스레드가..

CS/operating system 2021.08.10

Cache (캐시)

사실 컴퓨터구조 글이지만 카테고리 만들기 뭐해서 그냥 운영체제 카테고리에 작성한다. * Cache(캐시)? 데이터나 값을 미리 복사해놓는 임시 장소이다. 원래 데이터 저장 장치에서 데이터를 불러오는 것보다 캐시 접근 시간은 훨씬 빠르다는 장점이 있다. 또한 값을 다시 계산하는 시간을 절약하고 싶을 때 사용한다. 캐시에 데이터를 미리 복사해높으면 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근이 가능하다. 기본적으로 데이터를 미리 복사하여 저장해두는 메모리를 의미한다. 휘발성의 성질을 갖는다. * CPU 캐시 대용량의 메인 메모리 접근을 빠르게 하기 위해 CPU 칩 내부나 바로 옆에 탑재하는 작은 메모리이다. 메모리 접근 속도가 늘어나는 것에 비해 CPU의 처리 속도가 훨씬 빠르게 일어나고 있기 때..

CS/operating system 2021.07.14

운영체제 입문 강의 및 책 추천

운영체제는 컴퓨터 공학을 공부하는 학생이라면 누구나 반드시 접하는 과목이다. 그런데 나는 접근이 생소하고 어려워서 공부에 많은 어려움을 겪었다. 그러나 KOCW 등에 양질의 강의가 있어 그것을 통해 운영체제를 조금이나마 이해할 수 있었다. www.kocw.net/home/search/kemView.do?kemId=1046323 운영체제 운영체제는 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층으로서 모든 컴퓨터 시스템의 필수적인 부분이다. 본 강좌에서는 이와 같은 운영체제의 개념과 역할, 운영체제를 구성하는 각 www.kocw.net 이화여대 반효경 교수님의 운영체제 강의로, 운영체제를 입문하기에 최적의 강의이다. 2017년 버전도 있는데, 모르고 2014년 버전을 수강하였다... 그러나 강의 목차를..

CS/operating system 2021.03.10

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