[운영체제및실습] 11주차 2회차: RAID
·
운영체제및실습
1. RAIDRAID는 Redundant Array of Inexpensive (Independent) Disks를 나타냅니다.저렴한 디스크를 여러 개 사용해서 용량이 크고 품질이 큰 디스크 하나를 가지고 있는 것과 같은 효과를 얻습니다. 일반 PC에서 사용하는 디스크를 본 적이 있습니다. 개인용 컴퓨터는 싼 디스크 사용이 일반적인데, 용량도 적고, 하드웨어의 신뢰성도 떨어지게 됩니다. 가능하면 저렴한 부품을 사용해 디스크를 만들게 됩니다. 그래서 더 비싼 제품보다는 신뢰성이 떨어질 수 있습니다.일반적으로 용량이 큰 디스크는 높은 품질을 요구합니다. 용량이 큰 디스크는 개인이 쓰기 보다는 기업이나 공공기관이 거래정보, 고객정보, 데이터등을 저장하는 데 이용합니다. 예를 들어, 은행은 고객의 계좌정보, 금..
[운영체제및실습] 11주차 1회차: 디바이스 드라이버
·
운영체제및실습
디바이스 드라이버라는 소프트웨어의 일반 구조에 대해 알아봅시다. 입출력 장치는 크게 3가지로 분류하였습니다. 입출력 정보 단위가 한 바이트인 문자형 장치, 한 블록씩 장치와 주고받는 블록형 장치, 네트워크 장치가 있습니다. 이 세 장치가 특성이 다른 만큼 디바이스 드라이버 기능도 다르지만, 공통적인 소프트웨어 구조를 가집니다. 이번 시간에는 리눅스 디바이스 드라이버를 예로 해서 디바이스 드라이버를 설명하겠습니다. 리눅스 운영체제의 디바이스 드라이버는 매우 간결한 구조를 가집니다.먼저, 초기화 함수 init() 함수, 파일시스템을 위한 인터페이스 함수, 하드웨어를 위한 인터페이스 함수로 구성됩니다. 운영체제의 파일 관리를 배울 때, 파일 연산을 설명한 적이 있는데, 파일 시스템 인터페이스가 그 파일 연산..
[운영체제및실습] 10주차 4회차: 디스크 스케줄링
·
운영체제및실습
여러분은 이전에 디바이스 스케쥴링이라는 것이 무엇인지에 대해서 공부를 한 적이 있습니다.디스크 스케쥴링은 디스크라는 디바이스에 대한 스케쥴링입니다.일반적으로 입출력 장치의 스케쥴링에 사용하는 알고리즘은 선입선출 알고리즘을 사용합니다.디스크의 경우에는 선입선출 알고리즘을 사용하지 않습니다. 왜 사용하지 않는지, 그 대신에 어떤 알고리즘 사용하는지 알아봅시다.이전에 보았던 디스크 장치의 구조를 다시 봅시다. 동그란 금속판 한 장 또는 여러 장이 존재하는 모습을 볼 수 있습니다.하드디스크에선는 디스크 3장이 있지만 윗면, 아랫면 두 면에 모두 정보를 기록하는 것이 일반적입니다. 이 그림을 봅시다.디스크 한 면을 위에서 바라보면, 왼쪽 그림처럼 둥근 띠 모양이 여러 개 있는데, 띠 한 줄을 트랙이라고 합니다...
[운영체제및실습] 10주차 3회차 : I/O제어 : 인터럽트 I/O, DMA
·
운영체제및실습
운영체제가 장치를 제어하면서 입출력을 수행하는 방법에 크게 3가지 방법이 있다고 했었습니다.첫번째가 폴링, 다른 말로 프로그램 기반 아이오, 두번째가 인터럽트 아이오, 세번째가 dma방법입니다.이 시간에는 interrupt i/o에 대해 자세히 알아보도록 하겠습니다. 먼저, 폴링에서처럼 유저 모드에서 실행되는 어느 프로그램이 프린트 인스트럭션을 실행한다고 합시다. 그림에서 1번입니다. 프린트라는 인스트럭션은 컴파일 할 때 출력에 해당되는 시스템 콜로 바뀐다고 했었습니다. 그래서 시스템 콜이 불리어집니다. 2번 과정입니다. 시스템 콜은 커널에서 실행되는 함수이고, 그러기 위해서 user space에서 kernel space로, 즉 user mode에서 kernel mode로 바뀌는 mode change..
[운영체제및실습] 10주차 2회차: I/O제어 : 폴링
·
운영체제및실습
지금부터 운영체제가 디바이스 드라이버를 통해 장치를 제어하는 방법들을 알아봅니다. 1. I/O Control운영체제가 장치의 상태를 체크하면서 장치를 제어하는 데에는 크게 3가지 방법이 있습니다.1-1) Polling먼저 폴링에 대해서 설명하겠습니다. 사용자 프로그램에서 출력문이 있다고 합시다. 예를 들어 printf문이 사용자 코드에 있어서 컴파일 되면서 출력이 되는 시스템 콜로 바뀝니다. 사용자 프로그램에서 장치를 직접 제어할 권한이 없어서 권한을 가진 os가 그 일을 대신해주도록 시스템 콜로 바뀌어서 요청하는 것입니다. 시스템콜을 부른 사용자 프로셋는 유저 모드에서 커널 스페이스로 모드 체인지를 해서 커널로 들어갑니다. 이제부터는 사용자 프로세스가 아니라 커널이 운영체제가 실행되는 것입니다. 입출..
[운영체제및실습]10주차 1회차: 인터럽트 처리
·
운영체제및실습
이 시간에는 인터럽트 처리 방법에 대해 다루겠습니다! 1. Kernel entry points(커널 진입 방법)인터럽트는 디바이스가 자신에게 어떤 일이 발생했으니까 처리해달라고 커널에게 요청하는 방법입니다.컴퓨터 시스템 내에 이벤트(상황)이 발생하면 os에게 알려 운영체제가 신속히 처리하도록 해야 합니다.발생 가능한 상황 별로 그 상황에 대처하는 코드가 os 내부에 구현되어 있습니다. 따라서 어떤 상황이 생기면 os로 들어와서 해당 이벤트를 처리하는 커널 코드를 실행해야 합니다.커널에 구현된 상황을 처리하는 코드를 실행하게 만드는 방법이 3가지가 있습니다. 커널 코드 실행한다는 말은 커널진입방법(=kernel entry points)입니다.Interrupt, Trap(software interrupt),..