728x90

CS 188

운영체제 29. Redundant Array of Inexpensive Disk(RAID)

운영체제 29. Redundant Array of Inexpensive Disk(RAID) 여러개의 디스크를 조화롭게 사용하여 고속이면서 대용량의 신뢰할 수 있는 디스크 시스템을 만든다. 외면적으로 RAID는 하나의 디스크 처럼 보인다. 읽거나 쓸 수 있는 블럭의 그룹으로 보인다. 안을 들여다보면 RAID는 여러개의 디스크와 메모리, 시스템을 관리하기 위한 하나 또는 그 이상의 프로세스로 이루어진 복잡한 기계이다. RAID 하드웨어는 컴퓨터 시스템과 매우 유사하며 디스크의 그룹을 관리하기 위한 전용 시스템이다. RAID는 단일 디스크에 비해 여러 장점들을 제공한다. 하나의 장점은 성능이다. 디스크를 여러개 병렬적으로 사용하면 I/O 시간이 크게 개선된다. 또 다른 장점은 용량이다. 데이터의 양이 많아지면..

책/운영체제 2024.03.28

운영체제 28. 하드 디스크 드라이브

28. 하드 디스크 드라이브 28.1 인터페이스 드라이브는 읽고 쓸 수 있는 매우 많은 수의 섹터(512 byte블록)들로 이루어져 있다. 디스크 위의 n개의 섹터들은 0부터 n-1까지의 이름이 붙어있다. 그렇기 때문에 디스크를 섹터들의 배열로 볼 수 있으며 0부터 n-1이 드라이브의 주소 공간이 된다. 멀티 섹터 작업도 가능하다. 사실 많은 파일 시스템들이 한번에 4KB(또는 그 이상)을 읽거나 쓴다. 하지만 드라이브 제조사는 하나의 512byte 쓰기만 원자성을 보장한다. 그러므로 갑작스럽게 전력 손실이 발생한다면 대량의 쓰기 중에 일부만 완료될 수 있다.(때로는 이런 현상을 찢어쓰기(torn write)라고 부른다). 디스크 드라이브는 드라이브의 주소공간에서 가깝게 배치되어 있는 두 개의 블록을 접..

책/운영체제 2024.03.27

24.03.25 운영체제, PintOS

24.03.25 운영체제, PintOS 운영체제 27. I/O 장치 27.1 시스템 구조 시스템 설계자들은 계층 구조를 택하여 고성능 장치들을 CPU에 가깝게 배치하고 느린 성능의 장치는 그보다 멀리 배치했다. 디스크처럼 느린 장치를 주변 장치 I/O 버스에 연결하여 얻는 이득이 많은데, 그 중 하나는 많은 장치를 연결할 수 있다는 것이다. CPU는 인텔의 DMI(Direct Media Interface) 기술을 통해 I/O 칩에 연결되어 있으며, 나머지 장치들이 이 칩에 여러 다른 종류의 연결 방식을 사용하여 연결된다. 27.2 표준 장치 두 개의 중요한 요소가 있다. 첫 번째는 시스템의 다른 구성 요소에게 제공하는 하드웨어 인터페이스다. 소프트웨어가 인터페이스를 제공하듯이 하드웨어도 인터페이스를 제공..

24.03.24 운영체제

24.03.24 운영체제 운영체제 26. 이벤트 기반의 병행성(event-based concurrency) 이벤트 기반 프로그래밍은 쓰레드 기반의 병령 프로그래밍에 내제한 두 가지 문제점을 해결할 수 있다. 무엇보다 멀티 쓰레드 기반 프로그래밍은 어렵다. 자료구조를 락으로 보호하는 것을 잊을 수 있고, 교착 상태나 혹은 다른 문제들이 발생할 수 있다. 또 다른 문제는 멀티 쓰레드 프로그램에서는 개발자가 쓰레드 스케줄링에 대한 제어권을 갖고 있지 않다는 것이다. 운영체제가 CPU스케줄링에 대한 전권을 갖는다. 개발자는 운영체제가 합리적으로 쓰레드들의 실행 순서를 결정하기만을 기대할 수 밖에 없다. 26.1 개본 개념: 이벤트 루프 특정 사건의 발생을 대기한다. 사건이 발생하면, 사건의 종류를 파악한 후 I..

운영체제 27. I/O 장치

27. I/O 장치 27.1 시스템 구조 시스템 설계자들은 계층 구조를 택하여 고성능 장치들을 CPU에 가깝게 배치하고 느린 성능의 장치는 그보다 멀리 배치했다. 디스크처럼 느린 장치를 주변 장치 I/O 버스에 연결하여 얻는 이득이 많은데, 그 중 하나는 많은 장치를 연결할 수 있다는 것이다. CPU는 인텔의 DMI(Direct Media Interface) 기술을 통해 I/O 칩에 연결되어 있으며, 나머지 장치들이 이 칩에 여러 다른 종류의 연결 방식을 사용하여 연결된다. 27.2 표준 장치 두 개의 중요한 요소가 있다. 첫 번째는 시스템의 다른 구성 요소에게 제공하는 하드웨어 인터페이스다. 소프트웨어가 인터페이스를 제공하듯이 하드웨어도 인터페이스를 제공하여 시스템 소프트웨어가 동작을 제어할 수 있도록..

책/운영체제 2024.03.26

운영체제 26. 이벤트 기반의 병행성(event-based concurrency)

26. 이벤트 기반의 병행성(event-based concurrency) 이벤트 기반 프로그래밍은 쓰레드 기반의 병령 프로그래밍에 내제한 두 가지 문제점을 해결할 수 있다. 무엇보다 멀티 쓰레드 기반 프로그래밍은 어렵다. 자료구조를 락으로 보호하는 것을 잊을 수 있고, 교착 상태나 혹은 다른 문제들이 발생할 수 있다. 또 다른 문제는 멀티 쓰레드 프로그램에서는 개발자가 쓰레드 스케줄링에 대한 제어권을 갖고 있지 않다는 것이다. 운영체제가 CPU스케줄링에 대한 전권을 갖는다. 개발자는 운영체제가 합리적으로 쓰레드들의 실행 순서를 결정하기만을 기대할 수 밖에 없다. 26.1 개본 개념: 이벤트 루프 특정 사건의 발생을 대기한다. 사건이 발생하면, 사건의 종류를 파악한 후 I/O를 요청하거나 추후 처리를 위하..

책/운영체제 2024.03.24

24.03.23 운영체제

운영체제 25. 병행성 관련 버그 25.1 비교착 상태 오류 원자성 위반 오류 다수의 메모리 참조 연산들 간에 있어 예상했던 직렬성(serializability)이 보장되지 않았다.(즉, 코드의 일부에 원자성이 요구되었으나, 실행시에 그 원자성이 위반되었다.) 문제의 해결책은 공유 변수 참조 앞 뒤에 락을 추가해준다. 이 자료구조를 사용하는 모든 코드들이 이 락을 먼저 획득해야 한다. 순서 위반 오류 두 개의(그룹의) 메모리 참조 간의 순서가 바뀌었다.(즉, A가 항상 B보다 먼저 실행되어야 하지만 실행 중에 그 순서가 지켜지지 않았다.) 오류를 수정하는 방법은 순서를 강제하는 것이다. 이러한 종류의 동기화에는 컨디션 변수가 잘 맞는다. 쓰레드간의 순서가 문제가 된다면 컨디션 변수(또는 세마포어)를 사용..

운영체제 25. 병행성 관련 버그

25. 병행성 관련 버그 25.1 비교착 상태 오류 원자성 위반 오류 다수의 메모리 참조 연산들 간에 있어 예상했던 직렬성(serializability)이 보장되지 않았다.(즉, 코드의 일부에 원자성이 요구되었으나, 실행시에 그 원자성이 위반되었다.) 문제의 해결책은 공유 변수 참조 앞 뒤에 락을 추가해준다. 이 자료구조를 사용하는 모든 코드들이 이 락을 먼저 획득해야 한다. 순서 위반 오류 두 개의(그룹의) 메모리 참조 간의 순서가 바뀌었다.(즉, A가 항상 B보다 먼저 실행되어야 하지만 실행 중에 그 순서가 지켜지지 않았다.) 오류를 수정하는 방법은 순서를 강제하는 것이다. 이러한 종류의 동기화에는 컨디션 변수가 잘 맞는다. 쓰레드간의 순서가 문제가 된다면 컨디션 변수(또는 세마포어)를 사용하여 해결..

책/운영체제 2024.03.24

운영체제 24. 세마포어

24. 세마포어 24.1 세마포어 : 정의 세마포어는 정수 값을 갖는 객체로서 두 개의 루틴으로 조작할 수 있다. POSIX 표준에서 이 두 개의 루틴은 sem_wait()와 sem_post()이다. 세마는 초기 값에 의해 동작이 결정되기 때문에, 사용하기 전 제일 먼저 값을 초기화 해야한다. 같은 프로세스 내의 쓰레드 간에 세마포어를 공유한다. 두 루틴들은 동시에 다수 쓰레드들에 의해 호출될 수 있다. 임계영역이 적절히 보호되어야 한다. 임계영역 보호를 위해 사용할 함수내에서 임계영역 보호문제가 존재한다. sem_wait() 함수는 세마포어 값이 1 이상이면 즉시 리턴하거나, 해당 세마포어 값이 1 이상이 될 때까지 호출자를 대기시킨다. 다수의 쓰레드들이 sem_wait()을 호출 할 수 있기 때문에,..

책/운영체제 2024.03.23

DMA(Direct Memory Access)

DMA(Direct Memory Access) CPU를 거치지 않고 주변장치가 시스템 메모리에 직접 접근할 수 있도록 해주는 기술이다. CPU가 데이터 전송을 관리하는 대신, DMA 컨트롤러가 이 역할을 담당하여 CPU를 다른 작업에 할당할 수 있다. 작동 방식 DMA 컨트롤러 : DMA 연산은 DMA 컨트롤러라는 특수한 하드웨어에 의해 수행된다. 이 컨트롤러는 주변장치와 메모리 간의 데이터 전송을 관리한다. 메모리 접근 : 주변장치가 데이터를 전송할 준비가 되면, DMA 컨트롤러는 메모리 주소를 지정하고 데이터 전송을 시작한다. 이 과정에서 CPU는 관여하지 않는다. 인터럽트와 완료 신호 : 데이터 전송이 완료되면, DMA 컨트롤러는 CPU에 인터럽트를 보내 전송이 완료되었음을 알린다. 이를 통해 CP..

Computer/CS 2024.03.22
728x90