라벨이 운영체제인 게시물 표시

(운영체제) CPU스케줄링

1. CPU -입출력 버스트 사이클 ->프로세스의 실행은 CPU실행과 입/출력 대기의 사이클로 구성된다. 2. CPU스케줄러 CPU가 유휴상태가 될 때마다 운영체제는 준비완료 큐에있는 프로세스들 중에서 하나를 선택해 실행해야 한다. -> 준비완료 큐는 선입선출(FIFO)가 아니어도 된다. 준비완료큐는 선입선출 큐, 우선순위큐, 트리 또는 단순히 순서가 없는 연결리스트로 구현 할 수 있다. 큐에있는 레코드들은 일반적으로 프로세스들의 프로세스 제어 블록(PCB)이다. 3. 선점스케줄링 >>CPU 스케줄링 결정은 다음 네가지 상화에서 발생한다. 1.

(운영체제) 9장 입출력 시스템 기능과 구성

물리적 입출력 장치는 프린터, 콘솔 등 실제로 입출력을 수행하는 장치 입출력 모듈은 메모리나 프로세서 레지스터 등 내부저장 장치와 물리적(외부)입출력 장치 사이의 2진 정보를 전송하기 위한 방법을 제공한다. 1. 입출력 모듈 프로세서로부터 수행해야 할 명령어를 전달받고 장치로부터 관련된 메시지를 인식한다. 디스크로 전송될 때 까지 메모리로부터 온 데이터를 보관하기 위한 버퍼를 제공한다. 직접 메모리 전송을 수행하기 위한 제어와 필요한 레지스터를 제공한다. 주변기기를 제어한다. 버퍼를 통한 데이터를 복사하고 전송한다. 프로세서에게 데이터전송완료를 통보하기 위해 인터럽트 신호를 생성한다. 하나의 장치만을 제어하거나 여러개의 장치드을 제어하도록 구성될 수 있다. 프로세서 제어 입출력(프로그램 제어 입출력, 인터럽트 기반 입출력) DMA입출력 채널 입출력 2. 프로그램 제어 입출력 프로세서 내부에 있는 입출력 데이터와 주소 레지스터를 입출력 모듈과 연결하는 형태로 레지스터와 버스사이에서 데이터를 직접 전송할 수 있는 가장 간단한 형태이다. 입력된 데이터는 입출력 모듈을 거쳐 한 번에 한 워드씩 입출력 데이터 레지스터로 전송되고 입출력 데이터 레지스터에서는 프로그램에 의해서 데이터를 누산기로 전송한다. 프로그램 제어 입출력 시스템의 경우에는 속도가 느리다. 왜냐하면 명령어 인출과 실행 사이클이 반드시 모든 데이터의 입출력이 종료된 후에 실행되기 때문이다. 3. 인터럽트 기반 입출력: 외부 입출력 인터럽트는 입출력 장치나 컴퓨터 내의 프로그램으로 부터 프로세서에게 보내는 하드웨어 신호로서 컴퓨터는 이때 실행중인 일을 멈추고 다음에 다른 프로그램의 시행을 시작 할 수 있다. 따라서 프로세서는 수행되어야 할 입출력 연산의 대기 시간을 소모할 필요가 없으므로 효율성이 증가하였다. 4. DMA입출력 하드웨어 장치가 프로세서 도움 없이 메인메모리로 부터 직접적으로 제어하여 데이터 전송이 이루어지는 형태를 직접메모리...

(운영체제) 세마포어 뮤텍스

(운영체제) Atomic Operation이란?

*Atomic Operation의 사전적 의미. 기능적으로 분할할 수 없거나 분할되지 않도록 보증된 조작. 원자와 같이 분할할 수 없다는 것을 비유하여 원자조작은 끼어들기가 불가능하며, 만일 중지되면 동작 개시 직전의 상태로 시스템을 복귀시킬 것을 보증하는 복구(백업과 복원)기능이 제공된다. *Atomic Operation의 프로그래밍 언어적 의미 Atomic Operation이 필요한 부분은 멀티스레드 프로그램에서 공유자원들에 대해 여러 스레드가 동시에 액세스하는 경쟁상태(race condition)을 막기 위한 하나의 방법이다. 쉽게 말해 동기화를 위한 하나의 방법이다. 이것이 가능하려면 다음 두가지 조건이 반드시 만족해야 한다.   1. 모든 조작이 완료할 때 까지 어떤 프로세스도 변경을 알지 못하도록 비가시적이어야 하며   2. 조작중에 어느 하나라도 실패한다면 조작 전체도 실패하고 시스템의 상태를 조작 이전의 상태로 복구해야 한다. 외부에서는 조작의 집합이 단번에 성공하거나 실패하는 것으로 보인다. 그 사이에 어정쩡한 상태가 없어야 한다. 이것이 원자조작이다. 복수의 처리 장치가 있는 시스템처럼 복잡하지 않는 경우라도 이를 구현하는 것은 중요하다. 흐름제어의 변호의 가능성이 있는 한 원자성 없이는 시스템이 바르지 못한 상태로 빠질 가능성이 있다. -프로세스가 하나인 경우 예를들면 컴퓨터에서 메모리의 특정 위치에서 값을 1씩 증가시키는 프로세스가 있다고 치자. 메모리의 값을 1씩 증가시키는 절차는 다음과 같다. 프로세스는 메모리의 특정 위치에서 값을 읽어온다. 프로세스는 그 값에 1을 더한다. 프로세스는 새로 계산한 값을 메모리의 원래 위치에 써넣는다. -프로세스가 둘인 경우 이번에는 실행중인 두 프로세스가 공유하는 메모리의 위치에서 값을 1씩 증가시킨다고 해보자.   1. 첫째 프로세스는 메모리의 특정 위치에서 값을 읽어온다.   2. 첫째 프로세스는 그 값에 1을 더한...

(운영체제) 경쟁상태(race condition)

경쟁상태 (Race Condition) 둘 이상의 입력이나 조작이 동시에 일어나 의도하지 않은 결과를 가져오는 경우를 말합니다. - 파일 또는 변수와 같은 공유 자원을 접근하는 하나 또는 그 이상의 프로세스들의 다중 접근이 제대로 제어되지 않은 것을 말합니다. -  프로세스들 끼리 하나의 자원을 갖기 위해 싸우는 것,  하나의 자원을 동시에 요청 교착상태 (DeadLock) 프로세스들이 더 이상 진행을 못하고 영구적으로 블록되어 있는 상태로, 시스템 자원에 대한 경쟁 도중에 발생할 수도 있고 프로세스간의 통신 과정에서도 발생할 수 있습니다. 두 개 이상의 작업이 서로 상대방의 작업이 끝나기만을 기다리고 있기 때문에 결과적으로는 아무것도 완료되지 못하는 상태 를 말합니다. - A프로세스가 A자원을 점유하고 B프로세스가 B자원을 점유한 상태에서 A프로세스의 다음 작업으로 B자원이 필요하고 B프로세스의 다음 자원으로 A자원이 필요할 경우, 서로의 작업이 끝나기만을 기다리며 아무것도 실행되지 않는 상태라고 할 수 있습니다. - 경쟁상태도 교착상태(DeadLock)의 종류 중 하나입니다. 교착상태 조건 -  상호배제  (Mutual Exclusion) : 한 순간에 한 프로세스만이 자원을 사용할 수 있다. 즉, 한 프로세스에 의해 점유된 자원을 다른 프로세스들이 접근할 수 없다. -  점유대기  (Hold and Wait) : 이미  자원을 보유한 프로세스가 다른 자원을 요청하며 기다리고 있다 . -  비선점  (No preemption) : 프로세스에 의해  점유된 자원을 다른 프로세스가 강제적으로 빼앗을 수 없다 . -  환형대기  (Circular Wait) :  프로세스간에 닫힌 연결 이 존재할 경우입니다. 블록된 프로세스가 자원을 점유하고 있는데 이 자원을 다른 프로세스가 원하며 대기하고 있는...

(알고스팟) 원주율 외우기

                                                      예              난이도 모든 숫자가 같을 때                           333, 5555          1 숫자가 1씩 단조 증가하거나 감소할때       23456,3210     2 두 개의 숫자가 번갈아가며 나타날 때         323, 54545    4 숫자가 등차수열을 이룰 때                       14,8642        5 이 외의 모든 경우                                17912, 331       10 원주율의 일부가 주어질 때, 난이도의 합을 최소화하도록 숫자들을 세 자리에서 다섯자리까지 끊어 읽는다. 최소 난이도를 계산하라 예제) 5(입력케이스) 12341234 11111222 12122222 22222222 12673939 출력: 4 2 5 2 14 public cla...