728x90

CS 188

블로킹/논블로킹(Blocking/Non-Blocking)

블로킹/논블로킹 블로킹(Blocking, 타 작업 수행 차단) 특정 작업이 실행 요청을 받아서 실행하는 동안 다른 작업은 진행하지 못하고 대기하는 방식을 의미한다. 제어권이 호출된 함수에게 넘어가서 호출된 함수 내에서 작업이 모두 끝난 후 값이 리턴되고, 호출한 함수에게 다시 제어권이 넘어온다. 작업이 순차적으로 이루어지므로 작업 흐름을 쉽게 이해할 수 있다는 장점이 있다. 블로킹이 이루어지는 동안 하드웨어 리소스를 효율적으로 이용하지 못한다는 단점이 있고, 특히 블로킹이 일어나는 작업이 오래 걸리는 작업인 경우에 이러한 단점은 더욱 부각된다. 논블로킹(Non-Blocking, 타 작업 수행 허용) 특정 작업이 이미 수행중이여도, 그것과 상관없이 바로 다른 작업을 수행 시키는 방식을 의미한다. 제어권은 ..

Computer/CS 2024.03.12

동기/비동기

동기/비동기 동기(Synchronous, 동시에 발생) 동시에 일어난다는 의미이다. 즉, 요청과 그 결과가 동시에 일어난다는 약속을 의미한다. 요청을 하면, 시간이 얼마나 걸리든 상관없이 요청한 자리에서 결과가 주어져야 한다. 요청과 결과가 모두 한 자리에서 동시에 일어나게 된다. 여러 노드 사이의 작업 처리 단위를 동시에 맞추겠다는 의도를 포함하고 있다. 설계가 매우 간단하고 직관적이지만 결과가 주어질 때까지 아무것도 못하고 대기해야 한다는 단점이 존재한다. 비동기(Asynchronous, 동시에 발생하지 않는) 동시에 일어나지 않음을 의미한다. 즉, 요청과 결과가 동시에 일어나지 않는다는 약속을 의미한다. 요청한 그 자리에서 결과가 주어지지 않는다 노드 사이의 작업 처리 단위를 동시에 맞추지 않아도 ..

Computer/CS 2024.03.12

운영체제 14. 페이징 개요

14. 페이징 개요 공간을 동일 크기의 조각으로 분할하는 것을 페이징(Paging)이라 부른다. 프로세스의 주소 공간을 몇 개의 가변 크기의 논리 세그멘트로 나누는 것이 아니라 고정 크기의 단위로 나눈다. 이 각각의 고정 크기 단위를 페이지(Page)라고 부른다. 상응하여 물리 메모리도 페이지 프레임(Page Frame) 이라고 불리는 고정 크기의 슬롯의 배열이라고 생각한다. 이 프레임 각각은 하나의 가상 메모리 페이지를 저장할 수 있다. 14.1 간단한 예제 및 개요 물리 메모리는 고정 크기의 슬롯들로 구성된다. 가상 주소 공간의 페이지들은 물리 메모리 전체에 분산 배치되어 있다. 페이징의 장점은 유연성이다. 페이징을 사용하면 프로세스의 주소공간 사용 방식과는 상관없이 효율적으로 주소공간 개념을 지원 ..

책/운영체제 2024.03.11

32 bit OS vs 64 bit OS

32bit / 64 bit OS의 차이 컴퓨터의 워드 사이즈(Word size) word는 컴퓨터의 데이터 기본 처리 단위다. 32비트, 64비트는 워드 사이즈를 의미한다. 32비트 머신(CPU)라면 그 머신의 기본 데이터 처리 단위는 32비트가 되고, 64비트 머신이면 그 머신의 기본 데이터 처리 단위는 64비트가 된다. 가능한 CPU와 운영체제 조합 32비트 65비트가 CPU에도 운영체제에도 있다. CPU는 하드웨어, 운영체제는 소프트웨어 32비트 시스템과 64비트 시스템의 차이 메모리 주소 공간 크기의 차이 기본처리 단위가 다르다보니 프로세서의 레지스터의 크기에서 부터 차이가난다. 32비트 프로세서의 범용 레지스터는 32비트, 4바이트이다. 64비트 프로세서의 범용 레지스터는 65비트, 8바이트이다..

Computer/CS 2024.03.11

Rax Register

Rax Register 운영체제와 하드웨어 아키텍처 관점에서 중요한 역할을하는 레지스터 중 하나이다. 기본 개념 정의 및 특성 x86-64 아키텍처에서 사용되는 범용 레지스터이다. 64비트 시스템에서는 rax라는 이름을 가지며, 32비트에서는 eax, 16비트에서는 ax로 알려져있다. 역할 함수의 반환 함수 호출의 결과값을 저장하는데 주로 사용된다. 즉, 함수가 값을 반환할 때 rax에 그 값이 저장된다. 산술 연산 산술 연산 및 다른 명령어의 결과값을 저장하는 데에도 사용된다. 호환성 이전 16비트 및 32비트 시스템과 호환성을 위해, rax는 부분적으로 ax및 eax로 사용될 수 있다. 운영체제에서의 rax 레지스터 사용 시스템 호출 시스템 호출을 수행할 때, rax는 호출되는 시스템 호출의 번호를 ..

Computer/CS 2024.03.11

캐시(Cache)

캐시(Cache) Cache Memory 캐시 메모리는 속도가 빠른 장치와 느린 장치 간의 속도차에 따른 병목 현상을 줄이기 위한 범용 메모리다. 메인 메모리에서 자주 사용하는 프로그램과 데이터를 저장해두어 속도를 빠르게한다. 캐시의 지역성(Locality)를 이용한다. Cache Locality 캐시의 지역성이란, 데이터에 대한 접근이 시간적 혹은 공간적으로 가깝게 발생하는 것을 말한다. 캐시의 적중률(Hit rate)을 극대화 하여 캐시가 효율적으로 동작하기 위해 사용되는 성질이다. 캐시의 지역성은 공간 지역성(Spatial Locality)과 시간 지역성(Temporal Locality)으로 나뉜다. 공간 지역성 : 최근에 사용했던 데이터와 인접한 데이터가 참조될 가능성이 높다는 특성 시간 지역성 ..

Computer/CS 2024.03.11

24.03.10 운영체제, PintOS 정리

운영체제 13. 빈공간 관리 빈공간 관리는 관리하고 있는 공간이 고정 크기의 단위로 나누어져 있는 경우 쉽다. 그런 경우 고정 크기 단위의 리스트를 유지하면 된다. 클라이언트가 그 중 하나를 요청하면 첫 번째 항목을 반환하면 된다. 빈공간 관리가 더 어렵고 흥미로운 경우는 관리하는 공간이 가변 크기 빈 공간들의 집합으로 구성되어 있는 경우다. 이 경우 malloc()과 free()에서 처럼 사용자 수준 메모리 할당 라이브러리에서 그리고 세그멘테이션으로 물리 메모리를 관리하는 운영체제에서 발생한다. 어느 경우에도 외부 단편화가 존재한다. 13.1 가정 malloc()과 free()에서 제공하는 것과 같은 기본 인터페이스를 가정한다. 이 라이브러리가 관리하는 공간은 역사적으로 힙으로 불리며, 힙의 빈공간을 ..

운영체제 13. 빈공간 관리

운영체제 13. 빈공간 관리 빈공간 관리는 관리하고 있는 공간이 고정 크기의 단위로 나누어져 있는 경우 쉽다. 그런 경우 고정 크기 단위의 리스트를 유지하면 된다. 클라이언트가 그 중 하나를 요청하면 첫 번째 항목을 반환하면 된다. 빈공간 관리가 더 어렵고 흥미로운 경우는 관리하는 공간이 가변 크기 빈 공간들의 집합으로 구성되어 있는 경우다. 이 경우 malloc()과 free()에서 처럼 사용자 수준 메모리 할당 라이브러리에서 그리고 세그멘테이션으로 물리 메모리를 관리하는 운영체제에서 발생한다. 어느 경우에도 외부 단편화가 존재한다. 13.1 가정 malloc()과 free()에서 제공하는 것과 같은 기본 인터페이스를 가정한다. 이 라이브러리가 관리하는 공간은 역사적으로 힙으로 불리며, 힙의 빈공간을 ..

책/운영체제 2024.03.10

24.03.09 운영체제, PintOS

운영체제 12. 세그멘테이션 스택과 힙 사이의 공간은 사용되지 않더라도 주소 공간을 물리메모리에 재배치 할 때 물리 메모리를 차지한다. 베이스 바운드 레지스터 방식은 메모리 낭비가 심하다. 또한, 주소 공간이 물리 메모리보다 큰 경우 실행이 매우 어렵다. 이런 측면에서 베이스와 바운드 방식은 유연성이 없다. 12.1 세그멘테이션 : 베이스/바운드의 일반화 세그멘테이션 아이디어는 MMU에 하나의 베이스와 바운드 값이 존재하는 것이 아니라 세그멘트마다 베이스와 바운드 값이 존재한다. 세그멘트는 특정 길이를 가지는 연속적인 주소 공간이다. 우리가 기준으로 삼은 주소 공간에는 코드, 스택, 힙의 세 종류의 세그멘트가 있다. 세그멘테이션을 사용하면 운영체제는 각 세그멘트를 물리 메모리의 각기 다른 위치에 배치할 ..

운영체제 12. 세그멘테이션

운영체제 12. 세그멘테이션 스택과 힙 사이의 공간은 사용되지 않더라도 주소 공간을 물리메모리에 재배치 할 때 물리 메모리를 차지한다. 베이스 바운드 레지스터 방식은 메모리 낭비가 심하다. 또한, 주소 공간이 물리 메모리보다 큰 경우 실행이 매우 어렵다. 이런 측면에서 베이스와 바운드 방식은 유연성이 없다. 12.1 세그멘테이션 : 베이스/바운드의 일반화 세그멘테이션 아이디어는 MMU에 하나의 베이스와 바운드 값이 존재하는 것이 아니라 세그멘트마다 베이스와 바운드 값이 존재한다. 세그멘트는 특정 길이를 가지는 연속적인 주소 공간이다. 우리가 기준으로 삼은 주소 공간에는 코드, 스택, 힙의 세 종류의 세그멘트가 있다. 세그멘테이션을 사용하면 운영체제는 각 세그멘트를 물리 메모리의 각기 다른 위치에 배치할 ..

책/운영체제 2024.03.09
728x90