용어 정리

   1. cache memory / buffer / register

    2. interrupt / pswr / priority  / page

    3. deadlock / concurrence control / spooling / swapping

    4. process / job / task  

    5. multi-programming / multi-tasking / multi-processor  

    6. operating system의 목적 / database정의

        / DBMS .vs. file processing system

 

 설명형 

 1. QUEUE의 개념 및 컴퓨터 실행 시 정책(Policy)에 대하여....

 2. Operating system에서의 4가지 자원에 대하여....

 3. process 상태변환 그림에 대하여 자세히 이해하기....

     (ready state block state로 떨어지게 되는 경우...)
     ( Time slice
policy에 대하여...)

 4. job scheduler / process scheduler / io traffic controller / traffic controller ....

 5. memory paging기법에 대하여 이해하고 설명하기.

 6. Spooling에 대하여 자료를 찾고 개념을 정확하게 이해하기.


 

○ cache memory / 캐쉬 메모리

캐시 메모리는 마이크로프로세서가 일반적인 램에 비해 더 빨리 액세스 할 수 있는 램이다. 마이크로프로세서가 데이터를 처리할 때, 제일먼저 캐시 메모리에 있는지를 찾는데, 만약 거기에서 원하는 데이터를 찾으면, 읽는데 더 많은 시간이 필요한 메인 메모리로 갈 필요가 없게 된다.

 

캐시 메모리는 때로 마이크로프로세서에 얼마나 가깝고, 접근하기 쉬우냐에 따라 두 단계로 나뉘어진다. 레벨-1 (흔히 L1이라고도 표기한다) 캐시는 마이크로프로세서와 같은 칩 내에 있다(예를 들면 PowerPC 601 프로세서는 자체 칩 내에 32 KB L1 캐시가 내장되어 있다). 레벨-2 캐시는 보통 별도로 분리된 SRAM 칩이다. 메인 메모리는 보통 DRAM 칩이다. SRAM DRAM과는 달리 전자기적으로 재생시킬 필요가 없기 때문에 값이 더 비싸다. 많이 사용되는 캐시 메모리 크기는 1 MB 이다. 일반적으로 DRAM의 크기는 4 ~ 32 MB 정도이다.

 

캐시 메모리 외에도, 많은 사람들이 램 그 자체도 하드디스크에 대해 캐시 메모리의 역할을 수행한다고 생각하는데, 그 이유는 사용자가 컴퓨터를 켜고 운영체계를 적재하면 일단 램의 모든 내용은 하드디스크로부터 가져오기 때문이며, 이후 사용자가 새로운 응용프로그램을 시작하는 바에 따라 새로운 데이터를 액세스하게 된다. 램은 하드디스크로부터 가장 최근에 읽었던 데이터를 유지하기 위해 디스크 캐시라고 불리는 특별한 장소를 가질 수 있다. CPU와 주기억 장치 사이에 존재하여 프로그램의 총 실행 시간을 줄일 수 있게 한 것이 cache memory이다.

 

(cache memory는 그 컴퓨터의 성능을 나타내는 척도의 하나로서 적중률(hit ratio)을 사용한다.)

적중률 = 적중 횟수 / 총 접근 횟수




○ buffer /
버퍼

버퍼는 속도 차이가 있는 하드웨어 장치들, 또는 우선 순위가 다른 프로그램의 프로세스들에 의해 공유되는 데이터 저장소를 말한다. 예를 들어 CPU에서 인쇄작업을 위해 데이터를 프린터로 보낼 때 상대적으로 빠른 속도를 가지고 있는 CPU에서 보내지는 데이터를 느린 프린터는 CPU의 속도에 맞게 출력할 수 없다. 그러므로 이 때 CPU와 프린터 사이에 CPU에서 보내주는데 데이터를 일시적으로 저장할 수 있는 공간을 두어 이들의 속도 차이를 극복하는 방법을 취하는데 이렇게 일시적으로 데이터를 보관하는 장소를 버퍼라고 한다.

 

버퍼는 각 장치나 프로세스가 상대방에 의해 정체되지 않고 잘 동작할 수 있도록 해준다. 효율적인 버퍼를 만들기 위해서는, 버퍼의 크기를 상황에 맞게 잘 설계하고, 데이터를 버퍼로 집어넣거나 빼내기 쉽도록 우수한 알고리즘을 개발하는 것이 중요하다.

 

"데이터의 중간 저장소"라는 측면에서 버퍼는 캐시와 마찬가지이지만, 캐시가 어떤 작업의 속도를 증진시키기 위해 존재하는데 비해, 버퍼는 개별 작업들 간의 협동을 지원하기 위해 존재한다는 차이가 있다.  이 용어는 프로그래밍과 하드웨어 분야 모두에 사용될 수 있다.

 


○ cache - buffer storage /
완충 기억 장치

주기억 장치와 중앙 처리장치 사이에 놓아지는 고속 버퍼 메모리로서, 로컬 메모리라고도 한다.  기억 용량은 작지만, 기억 장치에 비하여 대단히 고속이며, 엑세스할 수 있는 장점이 있다.  따라서, 중앙 처리 장치에서 명령이 필요하게 되면, 우선 최초로 액세스하는 것은 주기억 장치가 아니라 캐시 메모리이다.


 

 ○ memory / 메모리

컴퓨터의 프로그램이나 데이터를 넣어두는 장소가 기억장치 즉 메모리이다. 메모리는 주로 주기억장치와 보조기억장치로 나뉘어진다. 주기억장치에는 램과 롬이 있다. 램은 정보를 받아들이고 계산의 결과치를 저장하는 등 자유롭게 사용할 수 있으나 전원이 꺼지면 기억된 내용을 모두 잃어 버린다.

 

반면에 롬은 전원이 꺼져도 기억된 내용을 잃지 않으며 기억되어 있는 내용을 읽을   수 만 있고 새로 저장하지 못한다. 그리고 보조기억장치에는 디스켓을 사용하여 원하는 데이터를   저장해놓을 수 있는 플로피 디스크와 고정 디스크라고도 하는 하드 디스크가 있다.

 


○ main memory /
메인 메모리

메모리는 컴퓨터를 구성하는 유닛 중 가장 중요한 요소이면서도, 그 용어 등의 난해함으로 잘 이해하지 못하고 있는 요소중의 하나이다. 메인 메모리란 현재 시스템에 사용되는 메모리는 3가지 타입이 있다. 소위 말하는 Level 1 cache, Level 2 cache, 메모리 등이 그것이다.

 

L1 캐시는 CPU 내부에 집적된 상태로 CPU의 코어 속도와 같이 동작하며, L2 캐시는 L1 캐시와 메모리 사이에서 버퍼(buffer, 완충) 역할을 해준다.  이러한 L2 캐시는 Socket7 형태의 메인 보드에서는 메인보드상에 장착했었지만 현재의 CPU들은 L2 캐시를 자체적으로 가지고 있는 경우가 대부분이다. 하지만 우리가 관심이 있는 것은 소위 말하는 메인 메모리인 RAM(Random Access Memory)이다.

 


○ RAM /

읽고 쓰기가 가능한 휘발성 메모리. CPU가 가장 많이 access하는 부품으로 컴퓨터에서의 모든 작업은 ram에서 이루어진다. 가상 메모리-램이 부족 할 경우에 디스크의 일부분을 램처럼 사용.

 

DRAM (Dynamic RAM)  (=DRAM)

-         1비트의 데이터를 기억하기 위하여 transistor 1개와 축전지 1개를 사용하는 단순한 구조.

-         일정 시간마다 refresh를 해주어야 함. 낮은 가격으로 대용량이 쉬워서 메인 메모리로 사용

 

SRAM (Static RAM)

-         1비트의 데이터를 기억하기 위해 transistor 4개와 2개의 저항을 사용. refresh가 필요 없음

-         가격이 비싸다. 캐시 메모리로 이용

 


○ register /
레지스터

컴퓨터에서 계산이나 연산과 같은 작업을 간편하게 처리하기 위해서 비트나 문자로 된 정보를 하나 또는 그 이상 임시로 저장하는 장치를 레지스터(Resister)라고 한다. 만약 우리들이 속셈을 이용하여 (50-25) +  (20-15)라는 계산식의 값을 구하려면 다음과 같은 절차를 밟게 된다

 

1. (50-25)를 계산하여 25라는 값을 알아 낸다.

2. 계산값 25를 머리 속에 잠시 기억해 놓는다.

3. (20-15)를 계산하여 5라는 값을 알아 낸다.

4. 계산값 5 역시 머리 속에 임시로 기억해 놓는다.

5. 이제 1에서 기억해 놓은 25 4에서 기억해 놓은 5를 더하여 정답 30을 알아낸다.

 

정답을 알아내기 위해서 우리는 25 5라는 수치를 머리 속에 잠시 기억해 놓았다. 컴퓨터에서도 계산을 처리할 때 이와 같이 임시로 정보를 저장하는 장소가 필요한데, 이 장소가 바로 레지스터이다. PC의 경우 레지스터는 일반적으로 마이크로 프로세서의 내부에 위치하고 있다. 한편 레지스터는 정보를 저장하기 때문에 램이나 롬과 같은 기억장치인 것 같지만 극히 적은 정보를 임시로 기억하기 때문에 기억장치로 보지 않는 것이 일반 견해이다.

 

저장하는 정보의 종류 또는 작용에 따라 레지스터는 여러 가지로 분류되는데 계산 및 논리 연산의 결과를 임시로 기억하는 레지스터를 누산기라고 하며, 기억번지나 장치의 번지를 기억하는 레지스터를 번지 레지스터라고 한다. 이외에 뎃셈으로 더한 수 또는 곱셈으로 곱한 수 등을 저장하는 산술 레지스터, 현재의 동작에 이어 다음 단계에 수행할 명령어의 번지를 갖는 제어 레지스터 및 상황에 따라 누산기나 기억 레지스터 또는 번지 레지스터의 기능을 수행할 목적으로 사용되는 범용 레지스터 등이 있다.

컴퓨터의 중앙 처리 장치에서 사용되는 고속의 기억 장치. 중앙 처리 장치에서 연산을 수행하기 위해서는 반드시 피연산자가 레지스터에 존재하여야 한다.



○ interrupt /
인터럽트

우리들은 일상 생활 속에서 하던 일을 멈추고 급히 또 다른 일을 처리해야 하는 경우를 자주 접하게 된다. 다른 사람의 대화에 급히 끼어 들어야 한다든지, 책을 읽다가 외부에서 걸려오는 전화를 받아야 하는 경우가 있는데, 이 때 우리는 전화를 받은 후 계속해서 책을 읽을 수 있도록 읽고 있던 부분을 표시해둔다. 컴퓨터를 사용할 때도 이와 유사한 경우가 있는데, 미리 프로그램 된 작업뿐만 아니라 이의 수행 도중에 요구되는 또 다른 작업을 우선적으로 긴급히 처리해주는 것이 바로 인터럽트 기능이다.

 

프로그램을 실행중인 CPU에 외부로부터 요구되는 일을 시키기 위해서 현재 진행하고 있는 일을 중단시켜 놓고 또 다른 작업을 우선으로 실행시키는 것으로 하드웨어 인터럽트라고 한다. 인터럽트 기능으로 말미암아 컴퓨터는 예기치 않은 상태가 발생하더라도 중단 없이 이에 대처할 수 있는 것이다. 수행 후 인터럽트 처리종료 신호를 받아 종전에 하던 일을 계속 수행 (모든 인터럽트의 끝은 반드시 'IRET(Interrupt Return)'으로 표현)


 

○ database / 데이터베이스

데이터베이스란 상호 연관된 데이터의 집합으로 어느 특정 조직의 응용 시스템들을 공동으로 사용하기 위하여 통합 저장된 운영 데이터의 집합이다. 그리고 이러한 데이터베이스를 관리하는 시스템을 DBMS(데이터베이스 관리 시스템)라 한다.

 

예를 들어 컴퓨터로 친구들의 주소, 성적, 취미, 특기 등에 관한 사항을 정리한다고 하자.

이를 단순한 각각의 파일로 작성한다면 수영을 같이 갈 친구를 찾을 때 일일이 친구들의 파일을 살펴 취미나 특기가 수영인 사람을 찾아야 한다. 그러므로 이 경우에는 각각의 파일이 단순하게 자료 보관 정도의 의미 밖에 가지지 못하지만, 이를 데이터베이스로 작성해 두면 취미나 특기가 수영인 친구를 찾아라'라고 명령을 내려 수영을 좋아하는 친구들의 목록에서 수영을 갈 친구를 쉽게 찾을 수 있다.


데이터 베이스는 인텍스화 된 정보의 집합이다. 인텍스는 정보상에서 순서를 부과하고 데이터 베이스 내의 정보에 접근할 수 있게 한다. 데이터베이스 내의 정보는 질의 언어를 통해 접근, 수정, 혹은 삭제된다.


 

○ DBMS .vs. file processing system / 데이터베이스 관리 시스템

응용프로그램의 데이터를 액세스하기 위한 프로그램의 집합.

다수의 컴퓨터 사용자들이 데이터 베이스 안에 데이터를 기록하거나 접근할 수 있도록 해주는 프로그램이다. DBMS는 사용자 요구사항들이나 다른 프로그램의 요구사항들을 관리함으로써 사용자들이나 다른 프로그램들이 실제로 그 데이터가 저장매체의 어느 곳에 저장되어 있는지를 이해하지 않고서도 다중 사용자 환경의 그 누구라도 데이터를 이용할 수 있도록 해준다.

전체 조직과 스토리지, 검색, 보안, 그리고 데이터 통합을 포함하는 데이터베이스의 데이터를 제어하는 어플리케이션 소프트웨어이다

 


○ Swap /
교체
 원래는 '교환하다' '교체하다'라는 의미. 복수의 프로그램을 실행시키면 이들이 모두 메모리에 저장 되지 않는 경우가 있다. 이 경우 현재 이용하지 않는 부분을 하드디스크에 기록하고, 필요할 때 메모리로 읽어 들인다. 이것을 스왑이라고 하고, 파일을 스왑 파일이라고 한다. 가상적으로 많은 메모리를 사용할 수 있지만 메모리보다도 하드디스크 쪽이 속도가 느리기 때문에 자주 스왑이 발생하면 처리속도가 떨어진다. 비슷한 것으로 페이징이 있고 같은 의미로 사용되는 경우도 있지만 페이징은 하드디스크와의 송수신을 페이지라고 불리는 KB의 단위로 처리하는 점등이 스왑과 다르다.

 


○ spooling /
스풀링

컴퓨터는 크게 중앙처리장치, 연산장치, 기억장치, 제어장치 및 입출력장치로 구성되어 있으며, 이러한 각 장치들은 상호연관 속에서 컴퓨터 시스템을 동작시킨다. 이 중에서 카드 판독기와 프린터 등의 입출력장치는 중앙처리장치에 비해 매우 느린 속도로 동작한다. 그러므로 중앙 처리장치가 직접 프린터의 출력을 제어할 경우에는 프린터의 인쇄작업이 끝날 때까지 중앙처리는 아무 일도 하지 못하고 프린터의 인쇄작업이 종료 될 때까지 기다려야 한다.

 

우리가 컴퓨터를 통해 자료를 처리하는 가장 큰 이유중의 하나가 신속성인데 만약에 중앙처리장치보다 느린 속도의 입출력장치로 인해 자료처리속도가 느려져 컴퓨터를 재대로 활용할 수 없다면 정말 큰 낭패가 아닐 수 없다. 이러한 컴퓨터 처리상의 문제점을 해결하기 위해 스풀링의 개념이 도입되었다.

 

스풀(spool) Simultaneous Peripheral Operation On-Line의 약어로, 고속의 처리속도를 가지고 있는 중앙처리장치와 저속의 처리속도를 가지고 있는 입출력장치의 동작을 분리시켜서 동시에 독립적으로 동작시켜 컴퓨터를 보다 효율적으로 사용하게 한다. 예를 들어 프린터를 사용할 경우 출력시킬 데이터를 디스크 등의 보조 기억 장치에 잠시 기억시켰다가 CPU가 다른 일을 처리하면서 중간 중간에 조금씩 프린터로 보내보면 프린터가 인쇄를 하는 동안에도 CPU는 쉬지 않고 계속 다른 작업을 수행할 수 있으며, 그에 따라 전체 작업의 효율을 향상시킬 수 있는 것이다.


 

○ PRIORITY  / 우선순위

하나의 순간에 처리하여야 하는 작업이 여러 개 존재하는 경우에, 이들 중에서 작업을 처리하는 순서를 결정하기 위하여 각각의 작업에 부여되어 있는 값, 일반적으로 우선 순위가 가장 높은 작업 순서에 따라 일을 처리한다. SetPriority Class(HANDLE hProcess, DWORD fwdPriority)를 사용할 수 있으며, GetPriority Class(HAN DLEhProcess)를 사용하여 지정된 우선 순위 클래스를 확인할 수 있다.

 


○ concurrent contro /
병행 제어

concurrent [병행]

 동일한 시간 간격 안에서 두 개 이상의 작업이 같은 자원들을 서로 공유하면서 작업을 수행하는 상황을 지칭하는 용어.


control [제어]
 
주어진 물체가 어떤 목적에 따라 정해진 방법으로 동작하도록 조종하는 행위.

컴퓨터 시스템을 구성하는 각각의 장치들이 협력하여 작업을 수행할 수 있도록 통제하고 관리하는 행위.

 


○ PSWR /
처리기 상태 워드 레지스터 (Program Status Word Register)
 처리기 상태 워드를 담고 있는 레지스터

 


○ page /
페이지

  하나의 화면을 통하여 사용자에게 제공할 수 있는 정보의 영역.

  프린터에서 한 장의 종이에 출력되는 정보.

가상 기억 장치를 사용하는 시스템에서 가상기억 장치와 실제 기억 장치 사이에 매핑이 이루어지는 단위. , 주기억 장치로의 반입, 주기억 장치로부터의 방출 그리고 가상 주소의 변환 등이 모두 하나의 페이지를 단위로 이루어진다. 일반적으로 페이지는 고정 길이를 사용하는 데, 주기억 장치는 보조 기억 장치의 페이지와 같은 크기를 사용한다.

virtual memory 참조.

 


○ job /
작업

 컴퓨터에서 하나의 단위로 처리되는 일. , 하나의 단위로 처리되는 프로그램 또는 서로 관련된 프로그램들의 집합을 작업이라고 한다.

 


○ task /
작업

 컴퓨터 안에서 다른 프로그램에 영향을 받지 않고 자기 독자적으로 실행될 수 있는 하나의 프로그램.

 


○ dead lock /
교착 상태

 프로세서들이 서로 작업을 진행하지 못하고 영원히 대기 상태로 빠지게 되는 현상

 원인은 프로세스 사이에 할당된 자원의 충돌로 인해 발생하게 된다.


교착상태가 발생할 필요조건은?

상호배제(mutual exclusion) : 공유할 수 없는 자원, 즉 한번에 한 프로세스만이 독점하는 자원을 하나이상 가지고 있음

 

점유와 대기(hold and wait) : 적어도 하나의 자원을 보유하고 현재 다른 프로세스에게 할당된 자원을 얻기 위해 기다리는 프로세스가 있음

 

비중단(nonpreemption) : 자원은 중단 될 수 없음. , 자원을 강제로 뺏을 수 없고 그 자원을 점유하고 있는 프로세스가 그 자원을 해제해야만 다른 프로세스가 사용할 수 있음.

 

환형대기(circular wait) : process의 자원에 대한 요청 및 할당 관계를 나타내는 환형 사슬 (circular chain)이 존재해서 이를 구성하는 각 프로세스는 chain 내의 다음에 인접한 프로세스가 가지고 있는 자원을 하나이상 요청하면서 대기하고 있음.

 

교착상태의 예방 : 교착상태가 발생할 4가지 필요조건 중 상호배제 조건을 제외한 나머지 조건 중 어느 한가지라도 부정하는 방법을 사용함.

 


○ memory
paging 의 기법

패치기법, 교체기법, 교환기법..

 


○ multiprogramming SYS /
다중 프로그래밍 시스템

두 개 이상의 프로그램이 사용할 수 있도록 각각의 프로그램에게 적절한 시간 동안 사용할 수 있도록 Scheduling하는 것

중앙처리의 사용효율 향상

system이 요구되는 조건

-         감독(monitor)프로그램

-         interrupt처리 p/g

-         기억장치 보호 기능

-         재배치 기능

-         입출력 processor

-         직접접근 기억장치

 


○ multitasking /
다중처리기

멀티테스킹이란 하나의 컴퓨터 시스템이 여러 개의 응용 프로그램을 동시에 수행하는 것.

CPU가 한꺼번에 일을 처리하는 것이 아니라 여러 프로세스들이 주어진 CPU시간을 특정한 알고리즘 에 의해 공유함을 의미한다. 이러한 기술을 Time-Slicing이라고 한다.

 


○ multiprocessing /
멀티프로세싱

멀티프로세싱이란 시스템의 처리 능력을 증진시키기 위하여 하나의 컴퓨터 내에 여러 개의 프로 세서(CPU)를 두어 이들이 각각 작업을 분담, 처리하도록 하는 방법을 말한다. 멀티프로세싱은 2개 이상의 CPU가 병렬적으로 작업하는 다중처리기 시스템에서 사용할 수 있는 방법으로, 여러 개의 CPU가 하나의 주기억장치를 공유하여 각각의 작업을 동시에 수행하게 된다.

다중처리 시스템(multi processing system)

두개이상의 processor가 하나의system을 구성하는 운영체제 형태로 더 많은 량의 작업을 동시에 처리한다.

  목적: 계산능력증진, 신뢰도 향상

  주요특징: 공유능력
  .
처리기와 기억장치, 처리기와 입출력장치를 상호 연결함으로써 제공

 


○ multi-processor /
다중 처리기

하나의 공유 기억장치를 설정해두고 이를 통해 처리장치들이 정보를 교환하는 방식

 


○ on-line porcessing /
온라인 처리

  일반적으로 데이터의 처리과정에 중앙처리기가 직접 개입하여 통제하는 방식으로 처리하는 것.

  데이터가 발생한 장소로부터 데이터를 직접 컴퓨터에 보내어 처리하는 방식. 대개 지리적으로 여러 곳에 분산된 단말기 등으로부터 발생한 데이터를 통신 회선을 통해 주컴퓨터에 바로 입력하여 처리하는 것을 가리킨다.



○ on-line batch processing system

온라인 일괄처리 시스템, 데이터의 발생지에 단말기 등을 두고 이들을 중앙의 주 컴퓨터와 통신회선으로 연결하여 데이터가 발생 하면 수시로 주 컴퓨터에 입력하되, 곧바로 처리하지는 않고 디스크에 저장하였다가 데이터가 일정량이 되었을 때 한꺼번에 처리하는 시스템.

 

○ batch processing /일괄 처리

외부로부터 데이터가 입력되는 즉시 작업이 처리되는 작업 처리 방법과 달리, 일괄 처리 작업에서는 외부로부터 입력되는 일련의 데이터들을 모아 두었다가 일정한 시간이 되면 이들 데이터들을 한꺼번에 처리한다. 예를 들어 대부분의 회사에서 사원들의 급여 정보를 처리하기 위하여 매일 매일 작업을 처리하는 것이 아니라, 한 달에 한 번씩 월말을 정하여 한달 동안 준비된 사원들의 급여 데이터를 처리하고 있다. 이와 같이 한 순간에 이제까지 준비된 데이터들을 한꺼번에 처리하는 작업을 바로 일괄 처리 작업이라고 한다.

 

일괄처리 시스템(batch processing system)

  다량의 처리data를 모아서 일괄적으로 처리하는 방식

  magnetic tape disk사용으로 processor의 활용향상

  목적:

성능향상(자동작업순서)

자동 작업 순서 방법(automatic job sequencing)

: p/g에서 다음p/g으로 제어가 자동적으로 넘어가게 하는 프로시쥬어를 기억장치 내에
상주시킴

=>상주모니터(resident monitor); 초기운영체제

  문제점 발생: 기계적인 I/O장치의 처리속도에 의한 유휴시간 발생


○ file processing / 파일 처리

파일을 생성하거나 삭제하는 작업에서부터 파일에 저장되어 있는 자료를 추가, 삭제, 갱신하는 모든 작업을 통칭하는 용어.

 


○ distributed processing /
분산 처리

지역적으로는 분산되어 있는 각각의 시스템들이 통신망으로 연결되어 자료를 처리하는 방법. 각각의 시스템에서 사용자로부터 자료를 입력 받은 경우, 해당 지역의 컴퓨터 시스템에서 해결할 수 있는 문제는 자체적으로 모두 해결한다. 하지만 자신이 해결할 수 없는 문제가 발생하게 되면 통신망을 통하여 해당 작업의 처리 능력을 가지고 있는 장치에게 작업을 요청하여 수행한 다음에 결과를 전달받아 사용자에게 결과를 보여주는 방식으로 동작한다.

 

분산 처리 시스템(distributed processing system)

  한 조직에서 여러 대의 컴퓨터를 이용하여 업무를 분산 처리하는 기법

  장점: 업무의 신속한 처리, 신뢰도 증진, database의 공동이용

   ( 다중 처리 시스템이 갖는 장점을 갖는다.)

자원공유 : 계산 속도 증가, 신뢰성, 통신


○ real time processing sys /
실시간 처리 시스템

데이터가 발생되는 즉시 처리하는 시스템

특징 : 즉각적인 응답을 지원. 즉각적인 처리를 요구 

사용하는 업무 : 석유정제의 측정 시스템, 항공예약관리, 은행온라인 업무

 


○ virtual memory system /
가상 기억장치 시스템

하나의 컴퓨터에 여러 개의 서로 다른 운영체제를 동시에 수행케 함으로써 여러 개의 컴퓨터 시스템이 작동하는 것처럼 보이게 한다.

장점:

. 기억장소로 제공된 기억장소보다 더 큰 주소를 지정함

     . user로부터 기억장소관리의 부담을 던다

     . 응용s/w의 개발 자유롭게 집중

    실 시간처리와 시 분할시스템의 비교

1)      실 시간처리: 프로그램에서 요구하는 자료만을 제공해 주고 처리결과만 받아본다

2)      시 분할시스템: 자기 임의대로 프로그램을 만들어 이용자와 관계없이 컴퓨터를 이용

3)      실 시간처리: 기억장치 공유

4)      시 분할처리: 중앙처리장치만 공유

 


○ centralized processing /
중앙 집중 처리

중심이 되는 센터에 대형 컴퓨터를 설치하고, 각 지역 또는 지방에 있는 사무소를 이 대형 컴퓨터와 연결하여, 모든 작업을 이 컴퓨터를 통해 처리하는 방법. 이 컴퓨터가 고장 나면 모든 것이 정지되는 문제점이 있다.

 


○ time sharing systemcentral /
시 분할처리

대화식 처리와 다중 프로그래밍 기법

여러 사용자로 하여금 동시에 하나의 컴퓨터를 사용할 수 있도록 한 것

다중사용자 시스템

사용자들로 하여금 각기 독립적으로 한 대의 컴퓨터를 사용하는 것으로 생각 되게 하는 system

 


○ operating system /
운영체제

컴퓨터 시스템의 자원을 효율적으로 운영하고 응용프로그램의 작성과 실행이 용이하도록 특별히 설계된 P/G

본래의 목적은 컴퓨터 시스템의 여러 구성요소들의 이용률을 증가시키고 유휴시간

   (idle time)을 감소시킴으로써 응용P/G의 실행비용을 줄이는데 있다.

H/W를 효율적으로 사용할 수 있도록 컴퓨터 시스템사용자에게 인터페이스를 제공하는 firmware S/W 형태의 프로그램

운영체제의 주된 역할: 자원을 관리한다.

자원 : 프로세서(processor), 기억장치(storage), 출력장치, 통신장치, data,  program

운영체제의 역할

 

. 사용자 인테페이스 구현. 사용자들간의 H/W공유. 사용자들간의 데이터 공유

. 다른 사용자와의 간섭배제. 사용자들 간의 자원 스케줄링. I/O에 대한 용이성 제공

. 오류의 복구. 자원사용의 평가. 병령 연산에 대한 용이성 제공

. 보안 및 빠른 엑세스를 위한 데이터의 조직화  

. 네트워크 통신처리 등의 역할 수행한다

 


○ queue /

""는 여러 개의 데이타 항목들이 일정한 순서로 나열된 자료 구조이다. 스택과는 달리 한쪽 끝에서는 삽입만 할 수 있고, 삭제는 반대쪽 끝에서만 할 수 있도록 되어 있다.

 

큐에 저장된 데이타 항목들 중에 먼저 삽입된 것은 먼저 삭제되고, 나중에 삽입된 것은 나중에 삭제된다. 그래서 큐를 선입 선출 리스트 (First-In-First-Out:FIFO) 라 부른다. 후입 선출법을 사용하는 스택과는 상반된 성질을 가진다. 하나의 자원을 공유하는 작업들에 대하여 자신에게 자원이 할당되기를 기다리는 작업들을 관리하기 위하여 사용되는 자료 구조.

 

원리 - 큐는 매표소에서 표를 사기 위해 기다리는 대기자 열과 같은 원리를 가진다. 대기자 열에는 먼저 온 사람부터 차례로 대기자 들이 늘어서 있다. 앞쪽 끝에서는 기다리던 사람이 표를 사서 빠져나가고 (삭제), 뒤쪽 끝에서는 새로운 사람들이 대기자 열로 들어온다(삽입).

 

종류

 - 선형 큐(linear queue) : 한 방향으로 데이타 항목들이 삽입/삭제 되는 것

  - 환형 큐(circular queue) : 작점과 끝점이 서로 연결되어 있는 것

 


스택

 "스택"이란 여러 개의 데이타 항목들이 일정한 순서로 나열된 자료 구조로, 한쪽 끝에서만 새로운 항목을 삽입하거나 기존 항목을 삭제할 수 있도록 고안된 것이다.

 

 원리 - 스택은 동전을 넣고 뺄 수 있도록 되어 있는 동전 케이스와 같은 작동 원리를 가지고 있다. 삽입된 동전들은 케이스 내부에 일정한 순서로 저장된다. 먼저 삽입된 동전은 케이스의 가장 아래쪽에 위치하고 가장 최근에 삽입된 동전은 입구에 놓인다.

 

 성질 - 스택에 저장된 데이타 항목들 중에 먼저 삽입된 것은 나중에 삭제되고, 나중에 삽입된 것이 먼저 삭제 된다. 그래서 스택을 후입 선출 리스트(Last- In-First-Out List)라고 부른다.

 


○ process /
프로세스

프로세스의 정의

실행중인 프로그램- 가장 일반적인 정의

프로세스는 진행, 수속, 과정, 경과 등을 나타내는 단어로, 실행중인 프로그램이라는 개념으로 가장 많이 사용되고 있는데, 이 실행중인 프로그램이라는 것은 프로그램이 CPU나 메모리에서 읽혀지고 처리되는 과정을 말하는 것이다. 또한 운영체제에서 CPU의 속도가 주변장치들의 속 도보다 빠르기 때문에 CPU의 사용시간을 분배하는 PCB(Process Control Block)가 존재한다는 의미로 사용되기도 한다.

 

프로세스의 상태

프로세스의 상태는 CPU와 메모리의 할당여부에 따라 상태가 전이 된다.

준비(Ready) : 프로세스가 실행되고 있지 않지만 즉시 CPU를 사용할 수 있는 상태로 대기하고
있는 상태
timer run out -
제어권을 가진 운영체제는 실행중인 프로세스를 준비 상태로 둠

 

실행(Ruuning):현재 CPU를 차지하여 실행중인 상태

 

보류(Block): 어떤 사건이 발생하기 전까지는 실행될 수 없는 상태

 

교착(Dead Lock): 프로세스가 결코 일어날 수 없는 사건을 기다리는 상태

    ready ; 새로 만들어진 Process에게 memory 할당, cpu를 할당 받기 위한 준비상태가 됨.

    running-> ready ; 할당된 시간량 초과로 처리기를 반납 한 후 실행 준비 상태가 됨.

   (timer interrupt에 의해)

    running-> blocked ; 실행중인 Process가 처리기를 반납하고 사건

   (event ; I/o대기, 자원 할당 대기 등등) 종료를 기다림.

   blocked-> ready ; 블록 상태에서 대기하던 process가 사건이 끝나서( wake up)

    실행 준비상태 가 됨.

  running-> exit ; process의 종료(정상 종료, 혹은 비정상 종료)

 


운영체제의 자원

프로세스(process) : 수행 중에 있는 프로그램

1) 프로세스 상태(state)

 . 작업의 생성(new), 활동(active), 대기(waiting), 중지(halted) 중의 한 상태가 된다.

      실행상태(running): 명령어가 실행

      대기(waiting)상태: 어떤 사건(i/o완료 등)이 일어나기를 기다림

      준비(ready)상태: 프로세서에 할당되기를 기다림
   
프로세스 상태 다이어그램
       
디스패칭
       
생성준비실행중지

           
할당시간  
       
조건만족       만료     보류
                   
대기


 


프로세스 제어 블록(process control block)

프로세스의 상태, 식별자 중 여러 정보를 가지는 데이터 집합체

 

프로세스 생성과 종료

  프로세스의 생성

.한 프로세스는 실행과정 동안 프로세스 생성 시스템 호출을 이용해 여러 개의 프로세스를 생성할 수 있다.

  부모 프로세스(parent process)

  자식 프로세스(children process)

  .부모 프로세스는 자식프로세스에게 자원을 나누어 주거나 공유함

 

프로세스 종료

  . 프로세스는 마지막 문장이 실행을 마쳤을 때 종료된다.

  . 부모 프로세스에게 실행 결과를 돌려준다.

 

프로세스 생성시 구현 방법

 실행: 병행 대 순차

   -부모프로세스는 그 자식 프로세스와 병행적으로 실행

   -부모 프로세스는 모든 자식 프로세스들이 종료될 때까지 기다린다.

 

 공유: 전체 대 부분

   -부모와 자식은 모든 자원을 공유

   -자식은 그 부모자원의 일부분만을 공유

   -부모와 자식은 자원을 공유하지 않는다.

 


스케줄링(scheduling)

   . 각 프로세스에게 중앙처리장치의 사용 시간을 할당하는 것을 말한다.

   . CPU권한 여부

. 선점(preemptive)

  -한 프로세스가 CPU를 차지했을 때 다른 프로세스가 CPU를 빼앗을 수 있는 경우

  -높은 우선순위의 프로세스들이 긴급한 경우에 유용

. 비선점(nonpreemptive)

  -한 프로세스가 CPU를 차지했을 때 다른 프로세스가 CPU를 빼앗을 수 없는 경우

  -모든 프로세스 관리에 공정하다.

  -응답시간의 예측이 쉽다.

     .scheduler

  -특별한 실행 s/w시스템

  -프로그램이 수행될 시간을 조정한다.


○ job scheduler / 작업 스케줄러

 여러 개의 프로그램이 동시에 실행될 수 있는 다중 처리 시스템에서 작업의 실행 순서를 결정하는 운영체제의 한 부분. 작업 큐에서 기다리는 작업들 중에서 작업의 우선 순위가 가장 높은 것을 골라 CPU를 배당하고, 그 작업이 끝나면 다시 다른 작업을 고르는 일을 한다.



○ traffic control system /
교통 제어 시스템

  교통량의 증가 감소에 따라 신호등의 점멸 시간을 자동적으로 제어하는 시스템.

  컴퓨터 네트워크에서 전송되는 메시지의 양을 조정하여 네트워크가 마비되지 않도록 하는 시스템

 


○ process scheduler /
프로세스 스케줄러

 프로세스에는 실행 중, 실행 가능, 대기 등의 상태가 있지만 그들의 상태를 교체하여 프로세스로의 CPU 시간의 할당 관리를 하는 기능을 말한다.

+ Recent posts