운영체제(OS)

    [운영체제] DMA

    [운영체제] DMA

    범용 버스를 통해 데이터를 교환하는 여러 장치로 구성된 범용 컴퓨터에서 인터럽트 구동 I/O 형태는 소량의 데이터를 이동하는 데는 좋지만 NVS I/O와 같은 대량의 데이터 이동에 사용될 때는 높은 오버헤드를 유발할 수 있다. 이런 문제를 해결하기 위해서 사용되는 것이 직접 메모리 엑세스(DMA)이다. 장치는 CPU의 개입 없이 메모리로부터 자신의 버퍼 장치로 또는 버퍼로부터 메모리로 데이터 블록 전체를 전송한다.

    [운영체제] 컴퓨터 시스템의 구성

    [운영체제] 컴퓨터 시스템의 구성

    컴퓨터를 켜면 어떤 동작이 이루어지는 생각 해보자 컴퓨터를 켜면 자동으로 실행이 되는 프로그램이 있는데 이를 부트스트랩(bootstrap)이라고 한다. 주로 ROM이나 EPROM에 저장되며 각종 장치를 초기화시키고 운영체제를 적재하고 실행시키는 역할을 한다. 컴퓨터 시스템은 주로 위와 같이 작동한다. CPU와 장치 컨트롤러들이 공통 버스를 통해 연결되고 소통한다. 공통 버스는 하나 이기 때문에 장치들은 CPU의 사용을 위해 서로 경쟁하는 구조이다. 각 장치들은 local buffer를 가지고 있고, I/O가 일어난다는 것은 장치로부터 컨트롤러의 버퍼에 저장되는 것을 의미한다. 이후 컨트롤러는 CPU에게 I/O가 끝났다는 사실을 알리고(Interrupt), CPU는 버퍼로부터 데이터를 읽어 메모리로 전달한..

    [운영체제] 운영체제란 무엇인가

    운영체제란 컴퓨터 하드웨어를 관리하는 소프트웨어이다. 응용프로그램을 위한 기반을 제공하며, 하드웨어와 사용자 사이에에서 중재자 역할을 수행한다. 운영체제는 사용자가 웹 브라우저, 문서 편집기 등을 더 편하고, 효율적으로 사용할 수 있게 해준다. 운영체제가 하는 역할을 살펴보기 위해 컴퓨터의 구성부터 알아보자. [컴퓨터 구성] 1 ) 하드 웨어 : 기본 계산 자원을 제공한다 - 중앙 처리 장치(CPU), 메모리 및 입출력(I/O) 장치 2 ) 운영체제 : 하드웨어의 사용을 조절한다. 3 ) 응용 프로그램 : 어떤 시스템 자원을 사용하여 사용자의 문재를 해결할지 결정한다. - 워드 프로세서, 컴파일러, 웹 브라우저 등 4 ) 사용자 운영체제의 역할을 자세히 이해하기 위해 사용자 관점과 시스템 관점으로 나눌 ..

    [운영체제] 스케줄링 알고리즘(2)

    [운영체제] 스케줄링 알고리즘(2)

    지난 포스팅의 선입 선처리 스케줄링과 최단 작업 우선스케줄링에 이어 나머지 스케줄링 알고리즘에 대하여 알아보려고 한다. [라운드 로빈 스케줄링] 라운드 로빈 스케줄링에서 모든 프로세스들은 똑같은 cpu 작업 시간을 할당 받는다(Time Quantum) n개의 프로세스, q의 작업 시간을 갖는다고 하면 각 프로세스는 1/n의 cpu 작업 시간을 할당 받고 (n-1)q 이상 기다리지 않는다. 이 경우에 만약 한 프로세스가 q시간에 작업을 끝내지 못내도 다음 프로세스로 전환된다. 여기서 발생할 수 있는 문제점은 만약 q가 문맥 교환시간보다 작다면 overhead가 너무 커져버린다. 평균 대기 시간을 계산해보자. P1은 (10-4), P2는 4, P3는 7밀리초를 기다린다. 따라서 17 / 3 = 5.66 밀리..

    [운영체제] 스케줄링 알고리즘

    [운영체제] 스케줄링 알고리즘

    CPU 스케줄링은 준비 큐에 있는 어느 프로세스에 CPU 코어를 할당한 것인지를 결정한다. 이번에는 여러 가지 다른 CPU스케줄링 알고리즘들에 대하여 알아보자. [선입 선처리 스케줄링] CPU를 먼저 요청하는 프로세스가 CPU를 먼저 할당 받는 구조이다. 이 구조의 문제점은 평균 대기 시간이 대단히 길 수 있다는 점이다. 아래와 같은 경우를 생각해보자 프로세스 버스트 시간 P1 24 P2 3 P3 3 프로세스들이 P1,P2,P3순서로 도착하고 선입선출의 구조로 일처리가 된다고 하면 다음과 같은 결과를 얻는다. 프로세스 P1의 대기 시간은 0밀리초이며, 프로세스 P2는 24, P3는 27밀리초가 된다. 따라서 평균 대기 시간은 (0 + 24 + 27) / 3 = 17밀리초이다. 보통 CPU의 처리 속도는 ..