시스템의 특성
- 시스템의 정의
- 시스템의 분류 - 정보 시스템의 특성 - 정보 시스템의 기본요소 시스템의 정의
1) Webster 사전에서의 시스템의 정의 ① 규칙적으로 상호 작용하거나 상호 의존적이면서 단일 집합을 형성하는 항목들의 집합 ② 주의, 사상, 법칙 등의 조직화된 집합 ; Gauss 법칙 ③ a. 조직화되거나 확립된 절차 b. 분류 또는 기호화하여 도식화하는 방법 ④ 조화로운 배열 및 양식 즉, 절차 ⑤ 하나의 조직화된 사회 또는 사회환경 즉, 체계 2) 시스템을 다른 표현으로 정의한 사례 ① 상호 작용하는 수많은 사물과 그 처리 과정
② 특정 목적을 성취하기 위해 구성인자들이 유기적으로 연결되어 있으면서 목적을 위해 노력하는 것 ③ 여러 가지 요소로 짜여진 기능 종합체로 짜여진 인간과 기계의 결합에 의해 이루어짐 ④ 조화 있게 상호 작용 또는 관련되어 전체를 이루는 사물 집단 ⑤ 질서가 있는 집단의 상태 1 시스템의 분류 1.1 현상에 의한 분류
1.2 인간과 인체 시스템 1.3 컴퓨터 시스템 1.4 주요 사회현상 시스템에 대한 분류 1.5 정보 처리 방식에 의한 시스템 분류 시스템의 분류(계속} 1.1 현상에 의한 분류 1) 자연 시스템 2) 인공 시스템 - 유형적인 것 - 무형적인 것 1.2 인간과 인체 시스템
1) 생리학적인 분류 : - 중 추 계 : 본능, 사고, 기억과 연관된 운동 및 감각중추 - 근 육 계 : 손, 발, 몸통, 목, 안면 등 신체를 이루고 있는 근육 - 신 경 계 : 시각, 청각, 후각, 촉각 등의 신경 - 생존증식계 : 호흡기, 소화기, 순환기, 생식계통 및 신진대사계 통 2) 기능적인 분류 :
- 인 식 계 : 외부의 정보수집 기능을 갖고 있는 눈, 귀, 코, 입, 피부 - 제 어 계 : 태어나면서부터 작동. 본능 - 기 억 계 : 뇌를 주체로 기억을 유지하고 필요정보를 기억하는 기능. - 동 작 계 : 운동중추와 얼굴, 손, 발, 몸통으로 구성. - 생존증식계 : 호흡, 소화, 순환, 생식계통 및 신진대사계통을 총칭. 1.3 컴퓨터 시스템 컴퓨터 = 하드웨어 + 소프트웨어 하드웨어 = 입력장치(인식계) + 제어장치(제어계) + 주기억장치(기억계) + 산술 및 논리연산장치(동작계) + 출력장치 + 통신장치 소프트웨어 = 인체의 생존증식계의 역할과 유사 1.4 주요 사회현상 시스템에 대한 분류
1) 공학시스템 :
- 기본시스템 'UP! > Software Engineering' 카테고리의 다른 글
'UP! > Software Engineering' 카테고리의 다른 글
'UP! > Software Engineering' 카테고리의 다른 글
소프트웨어 시스템 개발 패러다임
-패러다임(paradigm)이란 바라보는 눈, 시각, 관점, 기본 틀 등을 의미하는 것으로 문제를 보는 방식을 말한다. <소프트웨어의 개발> ① 소프트웨어 개발 방법 – 소프트웨어를 어떻게 만들 것인가를 결정하는 기술적인 요소들을 제시해 주고 프로젝트의 진행 단계에서 요구되는 기법과 수행되어야 할 과제를 포함한다. ② 소프트웨어 개발 환경 – 소프트웨어 개발 방법론을 지원해 주기 위해 필요한 자동화 시스템(CASE), 데이터베이스 관리 시스템(DBMS)등을 포함한다. ③ 소프트웨어 개발 관리 – 개발 방법과 환경을 묶어 시스템을 효율적으로 적시에 개발할 수 있도록 공정과정과 절차를 제시하는 것을 의미한다. 4.1 폭포수 모델 -폭포수 모델은 고전적 라이프 사이클 패러다임(classic life-cycle paradigm)이라고도 하며 다른 공학에서도 많이 사용되고 있는 전형적인 기법이다. - 폭포수 모델은 소프트웨어 개발을 단계적이며 체계적인 순차적인 접근 방법을 사용하여 정의 하고 있으며 가장 오래되고 널리 사용되는 패러다임이다. - 폭포수 모델은 개념 정립에서 구현까지 하향식(top-down) 접근 방법을 사용하여 높은 추상화 단계에서 시하여 낮은 추상화 단계로 옮겨가고 있다. - 각 단계가 끝날 때 마다 과정의 끝을 알리고 그 다음 단계로 진행한다. <폭포수 모델의 단계> 1. 요구사항 분석 (결과물: 요구사항 명세서) 2. 설계 (결과물: 설계 명세서) 3. 구현 (결과물: 컴퓨터 프로그래밍) 4. 시험 (테스트를 하기 위한 테스트 계획 필요) 5. 유지보수 <단점> 1. 프로젝트의 진행과정을 세분화 하여 관리를 용이하게 하나, 실제의 경우 대부분 순환이 발생하기 때문에 순차적인 흐름을 따라가는데 어려움이 있다. 2. 원하는 요구사항을 초기에 구체적으로 기술하기 어렵다. 3. 작동하는 시스템이 프로젝트의 후반부에 가서야 얻어짐으로써 중요한 문제점이 뒤에 발견된다. 4.2 원형(Prototyping) 패러다임 - 원형 패러다임은 엔지니어들이 고객의 요구를 불완전하게 이해하고 있는 경우를 대비해서 간단한 시제품을 만들어 보여주는 것 <시제품 개발을 통한 장점> 1. 시스템의 기능이 사용자에게 보여짐으로써 개발자와 사용자의 오해가 규명된다. 2. 생각지 못한 기능과 서비스가 발견된다. 3. 사용하기 어렵거나 혼돈을 일으키는 기능들이 규명되어 명료화된다. 4. 분석가나 개발자는 불완전 하거나 일치하지 않는 요구사항을 시제품을 통하여 발견 할 수 있다. 5. 완전하지 못하지만 작동하는 시스템을 만들어 가능성과 유용성을 관리자에게 보여줄 수 있다. 6. 시제품은 고품질 시스템의 요구사항을 명세화 할 수 있는 기초를 제공한다. <원형 패러다임의 단계> 1. 요구사항 분석단계 – 원형 패러다임의 첫 번째 단계로 분석가와 사용자가 만나 소프트웨어의 전반적인 요구사항을 정의한다. 2. 시제품 설계단계 – 원형에 대한 설계를 한다. 3. 시제품 개발 단계 – 시제품 개발에 있어서는 일반적으로 성능. 다른 시스템과의 인터페이스 등에 대한 것은 판단하기 어려워 중요하게 다루어지지 않는다. 기초 수준 정도로 구현 되면 된다. 4. 고객의 시제품 평가 단계 – 원형 패러다임의 가장 중요한 단계, 시제품은 고객에 의해 평가되고, 개발된 소프트웨어의 요구 사항을 구체적으로 정제하기 위해 사용된다. 5. 시제품 정제단계 – 사용자가 원하는 것을 만족시키기 위해 시제품에 대한 조율이 필요하다. 6. 완제품 생산단계 – 원하는 시스템을 개발 하는 것. 4.3 나선형(Spiral) 패러다임 - 나선형 모델은 폭포수 모델과 원형 패러다임의 장점에 새로운 요소인 위헌 분석(risk analysis)을 추가하여 만든 것이다. - 시스템을 개발하면서 생기는 위험을 최소화하는 것이 이 패러다임의 중요한 목적이다. - 나선형 모델은 비용이 많이 들고 시간이 오래 걸리는 큰 시스템을 구축해 나가는데 가장 현실적인 접근 방법이다. <나선형 패러다임의 단계> 1. 계획 및 정의 단계 – 요구사항을 모으고 프로젝트 계획을 수립한다 2. 위험분석 단계 – 요구사항에 근거하여 위험이 규명된다. 3. 개발단계 – 위험에 대한 평가 후 이루어진다. 이 단계에서는 “어떠한 패러다임이 적용되어 시스템의 개발이 이루어 질 것인가” 하는 개발 모델을 결정한다. 4. 고객 평가 단계 – 개발과정에서 나론 결과를 (예: 초기 소프트웨어 시제품)를 사용자가 평가하는 과정이다. <단점> 1. 앞의 두 모델보다 복잡하여 프로젝트 관리 자체를 어렵게 만들 가능성이 많다. 2. 많은 고객을 상대로 하는 상업용 제품의 경우 적용하기 어렵다. 3. 새로운 접근 방법이기 때문에 충분한 검증이 되어 있지 않다. 4.4 4세대 기법(4th Generation Techniques) - 4세대 기법(4GT)은 CASE를 비롯한 자동화 도구들을 이용하여 요구사항 명세서로부터 실행코드를 자동으로 생성할 수 있게 해주는 방법이다. 이러한 도구들은 고급언어 수준에서 요구사항이 명시되면 그것이 실행 할 수 있는 제품으로 전환 가능하게 한다. -고급언어를 실행코드로 바꾸어줄 만큼 정교하지 못하고 불필요한 많은 양의 코드를 생성하고 유지보수에 어려운 점이 있다. 4.5 소프트웨어 제작 방법의 공통점 - 시스템의 정의(definition), 개발(development), 유지보수(maintenance)단계는 모든 시스템 공학에 적용되는 일반적인 공통점이다. 1. 시스템 정의 과정 : 요구사항 분석과정에 해당하며 사용자의 관점에서 시스템이 제공해야 하는 지능, 데이터, 인터페이스를 정의한다. 이 과정은 무엇(what)에 초점을 맞춘다. 2. 시스템 개발 과정 : 시스템을 어떻게(how to) 만들지에 초점을 맞춘 설계, 구현, 시험의 과정이다 3. 시스템 유지보수 과정 : 시스템이 개발된 후 오류의 수정, 환경의 변화, 기능의 행상 요구 등과 연관되어 발생하는 변화(change)에 초점을 맞춘다.
#1. Ascii Code Table www.ascii-code.com #2. KSC5601(EUC-KR) 한글 완성형 코드표 http://blog.naver.com/bestdev/10014915998 #3. UTF-8 코드중 한글 영역 http://www.utf8-chartable.de/unicode-utf8-table.pl?start=44032
'dev' 카테고리의 다른 글
인텔과 엔비디아의 강렬한 충돌
옵티마이즈(optimize)는 ‘최고로 활용하다, 가장 능률적으로 활용하다’라는 의미다. 최근 PC 업계는 때 아닌 옵티마이즈 바람으로 뜨겁다. 옵티마이즈 PC 분야의 맹주자리를 놓고 인텔과 엔비디아가 뜨거운 한판 승부를 벌이고 있어서다. 인텔은 전통적인 PC에 더해 내장형 그래픽의 성능 강화라는 카드를 들고 왔고, 엔비디아는 GPU를 CPU와 동격에 놓고 시스템 성능을 향상시킨다는 지금까지 볼 수 없었던 전혀 새로운 개념으로 이 분야에 도전하고 있다.
1. 옵티마이즈 PC, 왜 등장했나?
현재 데스크톱 분야에서 인텔의 내장 그래픽이 차지하는 비율은 무척 높은 편인데, 이제 게임과 동영상에 대한 장점까지 갖춰 그래픽 시장에서 점유율을 더욱 높일 수 있게 된 것이다.
인텔의 옵티마이즈 PC는 뛰어난 성능을 갖춘 G45 메인보드 칩셋의 등장으로 실현되었다. 때문에 인텔의 옵티마이즈 PC에 대해 알아보려면 역시 G45 메인보드 칩셋에 대해 자세히 알아볼 필요가 있다. G45 메인보드 칩셋의 그래픽 성능은 기존의 내장 그래픽에 비해 비약적으로 향상되었다. 인텔은 올해 2사분기를 기해 이글레이크(Eaglelake) 메인보드 칩셋을 발표하면서 이글레이크 PC를 시장에 내놓았다. 이글레이크 칩셋은 인텔 울프데일(Wolfdale) 및 요크필드(Yorkfield) CPU와 DDR3 1333MHz 메모리를 지원한다. 블루레이, 디스플레이 포트(Display Port)와 HDMI, DVI, HDCP 등의 차세대 인터페이스와도 호환된다. 이밖에도 PCI 익스프레스 2.0을 제공한다. 사우스 브릿지 칩으로는 ICH10을 새롭게 채용했다. 또한 인텔의 AMT(Active Management Technology) v5.0과 다이렉트 입출력을 위한 VT기술, TXT, TPM 2.1모듈, 댄벌리 테크놀로지(Danbury Technology) 등을 지원하며, 플랫폼과 세부 사양에 따라 이글레이크 P, G, Q 시리즈로 나뉜다. 인텔 데스크탑 메인보드를 기반으로 하는 ATX 타입의 이글레이크 P 칩셋(코드명 : Skyberg)은 베어레이크 칩셋의 PCI 익스프레스 16+4배속 구성과는 다르게 PCI 익스프레스 8+8배속을 지원하는 것이 특징이다.
다음으로 내장 그래픽 코어를 갖춘 이글레이크 G 칩셋(코드명 : Icedale, Fly Creek)은 각각 울트라 ATX 타입과 울트라 SFF(Ultra SFF) 폼팩터로 제공되며, HDMI와 다이렉트X10, 인텔 클리어 비디오(Clear Video) 기술을 지원한다.
게다가 GMA 4500 시리즈에서는 동영상을 따로 처리하는 고정 유닛이 추가되었다. 때문에 블루레이나 HD DVD에서 채용하고 있는 동영상 포맷인 H.264(MPEG4 AVC) 변환 포맷인 VC-1, MPEG-2 포맷 등의 HD 동영상을 재생할 때 CPU의 부하가 많이 줄었다.
인텔의 옵티마이즈 PC는 이 외에도 기존 바이브(viiv) PC의 계보를 잇는 기술인 크라운스프링스(CrownSprings)와 연결된다. 이는 원격지에서 자신의 PC를 허브처럼 이용하는 개념이다. 바이브와 달리 PC를 계속 켜놓지 않아도 원격지에서 자신의 PC를 켜고 PC 속 컨텐츠를 자유롭게 이용할 수 있는 것이다. 특히 PC를 판매한 곳에서 회원들에게 원격지 PC AS 서비스를 제공할 수 있는 것도 이 솔루션의 매력 중 하나다. 1. 스케줄링의 개요 * 스케줄링(Scheduling)은 프로세스가 생성되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업을 의미한다. * 프로세스가 생성되어 완료될 때까지 프로세스는 여러 종류의 스케줄링 과정을 거치게 된다. * 스케줄링의 종류에는 장기 스케줄링, 중기 스케줄링, 단기 스케줄링이 있다. [표] >스케줄링과 문맥 교환이 무엇인지 개념을 파악하고, 스케줄링의 종류만 간단히 알자. >잠깐만! 문맥 교환(Context Switching) 하나의 프로세스에서 다른 프로세스로 CPU가 할당되는 과정에서 발생디는 것으로 새로운 프로세스에 CPU를 할당하기 위해 현재 CPU가 할당된 프로세스의 상태 정보를 저장하고, 새로운 프로세스의 상태 정보를 설정한 후 CPU를 할당하여 실행되도록 하는 작업을 의미한다. 2. 스케줄링의 목적 >스케줄링의 목적과 성능 평가 기준을 묻는 문제가 자주 출제됨. 스케줄링은 CPU나 자원을 효율적으로 사용하기 위한 정책이란 것을 중심으로 알아둔다. 스케줄링은 CPU나 자원을 효율적으로 사용하기 위한 정책으로, 다음과 같은 목적을 가지고 있다. * 공정성: 모든 프로세스에 공정하게 할당한다. * 처리율(량) 증가: 단위 시간당 프로세스를 처리하는 비율(양)을 증가시킨다. * CPU 이용률 증가: 프로세스 실행 과정에서 주기억장치를 액세스한다든지, 입ㆍ출력 명령 실행 등의 원인에 의해 발생할 수 있는 CPU의 낭비 시간을 줄이고, CPU가 순수하게 프로세스를 실행하는 데 사용되는 시간 비율을 증가시킨다. * 우선순위제도: 우선순위가 높은 프로세스를 먼저 실행한다. * 오버헤드 최소화: 오버헤드를 최소화한다. * 응답 시간(Response Time, 반응 시간) 최소화: 작업을 지시하고, 반응하기 시작하는 시간을 최소화한다. * 반환 시간(Turn Around Time) 최소화: 작업을 지시하고, 반응하기 시작하는 시간을 최소화한다. * 대기 시간 최소화: 프로세스가 준비상태 큐에서 대기하는 시간을 최소화한다. * 균형 있는 자원의 사용: 메모리, 입ㆍ출력장치 등의 자원을 균형 있게 사용한다. * 무한 연기 회피: 자원을 사용하기 위해 무한정 연기되는 상태를 회피한다. >우선순위 우선순위는 시스템에 의해 자동으로 또는 외부 사항에 의해 결정되기도 한다. 시간 제한, 기억장치 요구, 개방된 파일 수, 평균 입ㆍ출력 실행 시간 등을 이용한 내부적 우선순위와 작업을 지원하는 정책, 부서 등의 외부적 우선순위가 있다. >잠깐만! 스케줄링의 성능 기준 스케줄링의 목적 중 CPU 이용률, 처리율, 반환 시간, 대기 시간, 응답 시간은 여러 종류의 스케줄링 성능을 비교하는 기준이 된다. 3. 프로세서 스케줄링(프로세스 스케줄링)의 기법
>선점, 비선점 스케줄링의 의미 파악하고 각 스케줄링의 종류도 알아두자.
비선점(Non-preemptive) 스케줄링 * 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법이다. * 프로세스가 CPU를 할당받으면 해당 프로세스가 완료될 때까지 CPU를 사용한다. * 모든 프로세스에 대한 요구를 공정하게 처리할 수 있다. * 프로세스 응답 시간의 예측이 용이하며, 일괄 처리 방식에 적합하다. * 중요한 작업(짧은 작업)이 중요하지 않은 작업(긴 작업)을 기다리는 경우가 발생할 수 있다. * 비선점 스케줄링의 종류에는 FCFS, SJF, 우선순위, HRN, 기한부 등의 알고리즘이 있다. 선점(Preemptive) 스케줄링 * 하나의 프로세스가 CPU를 할당받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법이다. * 우선순위가 높은 프로세스를 빠르게 처리할 수 있다. * 주로 빠른 응답 시가늘 요구하는 대화식 시분할 시스템에 사용된다. * 많은 오버헤드(Overhead)를 초래한다. * 선점이 가능하도록 일정 시간 배당에 대한 인터럽트용 타이머 클럭(Clock)이 필요하다. * 선점 스케줄링의 종류에는 Round Robin(RR), SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐 등의 알고리즘이 있다. >인터럽트용 타이머 클럭 하나의 시스템 내에서 동작하는 장치들을 감시하기 위해 주기적인 신호를 발생하는 것으로, 하나의 프로세스가 자원을 독점하지 못하도록 방지하기 위해 사용. 'Algorithm' 카테고리의 다른 글
선점 스케줄링에 해당하는 선점 우선순위, SRT, RR, 다단계 큐, 다단계 피드백 큐 알고리즘에 대하여 알아보자. >선점 스케줄링은 대부분 비선점 스케줄링을 보완한 것이다. 1. 선점 우선순위 * 준비상태 큐의 프로세스들 중에서 우선순위가 가장 높은 프로세스에게 먼저 CPU를 할당하는 기법이다. * 비선점 우선순위 기법을 선점 형태로 변경한 것으로, 준비상태 큐에 새로 들어온 프로세스의 순위가 높을 경우 현재의 프로세스를 보류하고 새로운 프로세스를 실행한다. 2. SRT(Shortest Remaining Time) * 비선점 스케줄링인 SJF 기법을 선점 형태로 변경한 기법으로, 선점 SJF 기법이라고도 한다. * 현재 실행중인 프로세스의 남은 시간과 준비상태 큐에 새로 도착한 프로세스의 실행 시간을 비교하여 가장 짧은 실행 시간을 요구하는 프로세스에게 CPU를 할당하는 기법으로, 시분할 시스템에 유용하다. * 준비상태 큐에 있는 각 프로세스의 실행 시간을 추적하여 보유하고 있어야 하므로 오버헤드가 증가한다. >SRT는 SJF를 변경한 것으로, 두 개의 알고리즘을 비교하는 문제가 출제됨. SJF는 실행시간이 가장 짧은 프로세스. SRT는 현재 실행중인 프로세스의 남아 있는 실행 시간과 새로운 프로세스의 실행 시간을 비교하여 짧은 것. 3. RR(Round Robin) * 시분할 시스템(Time Sharing System)을 위해 고안된 방식으로, FCFS 알고리즘을 선점 형태로 변형한 기법이다. * FCFS 기법과 같이 준비상태 큐에 먼저 들어온 프로세스가 먼저 CPU를 할당받지만 각 프로세스는 시간 할당량(Time Slice, Quantum) 동안만 실행한 후 실행이 완료되지 않으면 다음 프로세스에게 CPU를 넘겨주고 준비상태 큐의 가장 뒤로 배치된다. * 할당되는 시간이 클 경우 FCFS 기법과 같아지고, 할당되는 시간이 작을 경우 문맥교환 및 오버헤드가 자주 발생한다. * 할당되는 시간의 크기가 작으면 작은 프로세스들에게 유리하다. >RR은 전반적인 내용을 묻는 문제가 출제됨. RR은 시간 할당량을 사용하는 데 할당된 시간이 클수록 FCFS와 같고, 할당되는 시간이 작을수록 문맥 교환과 오버헤드가 자주 발생된다. 예제] 4. 다단계 큐(MQ, Multi-level Queue) * 프로세스를 특정 그룹으로 분류할 수 있을 경우 그룹에 따라 각기 다른 준비상태 큐를 사용하는 기법이다. * 일반적으로 프로세스 우선순위에 따라 시스템 프로세스, 대화형 프로세스, 편집 프로세스, 일괄 처리 프로세스 등으로 나누어 준비상태 큐를 상위, 중위, 하위 단계로 배치한다. [그림] >다단계 큐와 다단계 피드백 큐의 차이점을 알아두자. * 각 준비상태 큐는 독자적인 스케줄링을 가지고 있으므로 각 그룹의 특성에 따라 서로 다른 스케줄링 기법을 사용할 수 있다. * 프로세스가 특정 그룹의 준비상태 큐에 들어갈 경우 다른 준비상태 큐로 이동할 수 없다. * 하위 단계 준비상태 큐에 있는 프로세스를 실행하는 도중이라도 상위 단계 준비상태 큐에 프로세스가 들어오면 상위 단계 프로세스에게 CPU를 할당해야 한다. 5. 다단계 피드백 큐(MFQ, Multi-level Feedback Queue) * 특정 그룹의 준비상태 큐에 들어간 프로세스가 다른 준비상태 큐로 이동할 수 없는 다단계 큐 기법을 준비상태 큐 사이를 이동할 수 있도록 개선한 기법이다. * 각 준비상태 큐마다 시간 할당량을 부여하여 그 시간 동안 완료하지 못한 프로세스는 다음 단계의 준비상태 큐로 이동된다. * 상위 단계 준비상태 큐일수록 우선순위가 높고, 시간 할당량이 적다. * 요구하는 시간이 적은 프로세스, 입ㆍ출력 중심의 프로세스, 낮은 우선순위에서 너무 오래 기다린 프로세스를 기준으로 높은 우선순위를 할당한다. * 하위 단계 준비상태 큐에 있는 프로세스를 실행하는 도중이라도 상위 단계 준비상태 큐에 프로세스가 들어오면 상위 단계 프로세스에게 CPU를 할당하며, 마지막 단계 큐에서는 작업이 완료될 때까지 RR 스케줄링 기법을 사용한다.
비선점 스케줄링에 해당하는 FCFS, SJF, HRN, 우선순위, 기한부 알고리즘에 대하여 알아보자. >잠깐만! 비선점 스케줄링과 선점 스케줄링 다음과 같이 대응되는 표를 이용하여 각 알고리즘이 선점 기법인지 비선점 기법인지 정리하자. [표] 1. FCFS(First Come First Service, 선입선출) = FIFO * FCFS는 준비상태 큐(대기 큐, 준비 완료 리스트, 작업준비 큐, 스케줄링 큐)에 도착한 순서에 따라 차례로 CPU를 할당하는 기법으로, 가장 간단한 알고리즘이다. * 먼저 도착한 것이 먼저 처리되어 공평성은 유지되지만 짧은 작업이 긴 작업을, 중요한 작업이 중요하지 않은 작업을 기다리게 된다. 예제] >FCFS(FIFO)는 비선점 기법이며 준비상태 큐에 도착한 순서대로 할당을 받는다. 2. SJF(Shortest Job First, 단기 작업 우선) * SJF는 준비상태 큐에서 기다리고 있는 프로세스들 중에서 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법이다. * 가장 적은 평균 대기 시간을 제공하는 최적 알고리즘이다. * 실행 시간이 긴 프로세스는 실행 시간이 짧은 프로세스에게 할당 순위가 밀려 무한 연기 상태가 발생될 수 있다. >SJF의 전반적인 특징, 평균 반환 시간을 계산하는 문제가 촐제됨. 예제1] 예제2] 3. HRN(Hightest Response-ratio Next) * 실행 시간이 긴 프로세스에 불리한 SKF 기법을 보완하기 위한 것으로, 대기 시간과 서비스(실행) 시간을 이용하는 기법이다. * 우선순위 계산 공식을 이용하여 서비스(실행) 시간이 짧은 프로세스나 대기 시간이 긴 프로세스에게 우선순위를 주어 CPU를 할당한다. * 서비스 실행 시간이 짧거나 대기 시간이 긴 프로세스일 경우 우선순위가 높아진다. * 우선순위를 계산하여 그 숫자가 가장 높은 것부터 낮은 순으로 우선순위가 부여된다. * 우선순위 계산식 [수식] >HRN에서는 의미, 우선순위를 계산하는 공식, 계산문제가 출제됨. 예제] 4. 기한부(Deadline) * 프로세스에게 일정한 시간을 주어 그 시간 안에 프로세스를 완료하도록 하는 기법이다. * 프로세스가 제한된 시간 안에 완료되지 않을 경우 제거되거나 처음부터 다시 실행해야 한다. * 시스템은 프로세스에게 할당할 정확한 시간을 추정해야 하며, 이를 위해서 사용자는 시스템이 요구한 프로세스에 대해 정확한 정보를 제공해야 한다. * 여러 프로세스들이 동시에 실행되면 스케줄링이 복잡해지며, 프로세스 실행 시 집중적으로 요구되는 자원 관리에 오버헤드가 발생한다. 5. 우선순위(Priority) * 준비상태 큐에서 기다리는 각 프로세스마다 우선순위를 부여하여 그 중 가장 높은 프로세스에게 먼저 CPU를 할당하는 기법이다. * 우선순위가 동일할 경우 FCFS 기법으로 CPU를 할당한다. * 우선순위는 프로세스의 종류나 특성에 따라 다르게 부여될 수 있다. * 가장 낮은 순위를 부여받은 프로세스는 무한 연기 또는 기아 상태(Starvation)가 발생할 수 있다. >무한 연기/기아 상태 우선순위가 낮아 CPU 할당이 무한히 연기되는 상태를 무한 연기라 하고, 무한 연기 상태에서 결국 프로세스를 완료하지 못하는 상태를 기아 상태라 한다. >잠깐만! 에이징(Aging) 기법 ㆍ시스템에서 특정 프로세스의 우선순위가 낮아 무한정 기다리게 되는 경우, 한번 양보하거나 기다린 시간에 비례하여 일정 시간이 지나면 우선순위를 한 단계씩 높여 가까운 시간 안에 자원을 할당받도록하는 기법이다. ㆍ SJF나 우선순위 기법에서 발생할 수 있는 무한 연기 상태, 기아 상태를 예방할 수 있다.
1. 병행 프로세스 병행 프로세스(Concurrent Process)는 두 개 이상의 프로세스들이 동시에 존재하며 실행 상태에 있는 것을 의미한다. * 여러 프로세스들이 독립적으로 실행되는 것을 독립적 병행 프로세스, 서로 협력하며 동시에 실행되는 것을 협동적 병행 프로세스라고 한다. * 병행 프로세스는 다중 처리 시스템이나 분산 처리 시스템에서 중요한 개념으로 사용된다. 2. 임계 구역 임계 구역(Critical Section)은 다중 프로그래밍 운영체제에서 여러 개의 프로세스가 공유하는 데이터 및 자원에 대하여 어느 한 시점에서는 하나의 프로세스만 자원 또는 데이터를 사용하도록 지정된 공유 자원(영역)을 의미한다. * 임계 구역에는 하나의 프로세스만 접근할 수 있으며, 해당 프로세스가 자원을 반납한 후에만 다른 프로세스가 자원이나 데이터를 사용할 수 있다. * 임계 구역은 특정 프로세스가 독점할 수 없다. * 임계 구역의 자원이나 데이터는 여러 프로세스가 사용해야 하므로 임계 구역 내에서의 작업은 신속하게 이루어져야 한다. * 프로세스가 임계 구역에 대한 진입을 요청하면 일정 시간 내에 진입을 허락해야 한다. * 현재 임계 구역에서 실행되는 프로세스가 없다면 임계 구역 사용을 기다리고 있는 잔류 영역에 있는 프로세스의 사용을 허락해야 하며, 그 이외에 있는 프로세스는 임계 구역에 진입할 수 없다. >임계 구역의 개념에 대한 문제 출제됨. 영문으로 Critical Section이라는 것을 기억할 것. >공유 자원 공유 자원에는 CPU, 메모리, 디스크, 입ㆍ출력 장치, 버퍼 등이 있다. 3. 상호 배제 기법 상호 배제(Mutual Exclusion)는 특정 프로세스가 공유 자원을 사용하고 있을 경우 다른 프로세스가 해당 공유 자원을 사용하지 못하게 제어하는 기법을 의미한다. * 여러 프로세스가 동시에 공유 자원을 사용할 때 각 프로세스가 번갈아가며 공유 자원을 사용하도록 하는 것으로, 임계 구역을 유지하는 기법이다. * 상호 배제 기법을 구현하기 위한 방법에는 소프트웨어적 구현과 하드웨어적 구현이 있다. >상호 배제 개념과 영문표기법을 기억할 것. 소프트웨어적 구현 방법 * 두 개의 프로세스 기준: 데커(Dekker) 알고리즘, 피터슨(Peterson) 알고리즘 * 여러 개의 프로세스 기준: Lamport의 빵집 알고리즘 >Lamport의 빵집 알고리즘 고객이 빵집에 들어갈 때 번호를 부여하여 순서대로 고객에게 빵을 제공하는 방법과 같이, 각 프로세스에게 번호를 부여하여 자원을 사용하도록 하는 방법. 하드웨어적 구현 방법 Test_And_Set 기법과 Swap 명령어 기법이 있다. 4. 동기화 기법 동기화 기법(Synchronization)은 두 개 이상의 프로세스를 한 시점에서는 동시에 처리할 수 없으므로 각 프로세스에 대한 처리 순서를 결정하는 것으로, 상호 배제의 한 형태이다. * 동기화를 구현할 수 있는 방법에는 세마포어와 모니터가 있다. >세마포어와 모니터를 묻는 구체적인 문제가 출제됨. 각각의 의미와 특징을 파악 할 것. 세마포어(Semaphore) * 세마포어는 '신호기', '깃발'을 뜻하며, 각 프로세스에 제어 신호를 전달하여 순서대로 작업을 수행하도록 하는 기법이다. * 세마포어는 다익스트라(E.J.Dijkstra)가 제안하였으며, P와 V라는 두 개의 연산에 의해서 동기화를 유지하고 상호 배제의 원리를 보장한다. * S는 P와 V 연산으로만 접근 가능한 세마포어 변수로, 공유 자원의 개수를 나타내며 0과 1 혹은 0과 양의 값을 가질 수 있다. [그림 및 설명] 모니터 * 모니터는 동기화를 구현하기 위한 특수 프로그램 기법으로 특정 공유 자원을 프로세스에게 할당하는 데 필요한 데이터와 이 데이터를 처리하는 프로시저로 구성된다. * 자료 추상화와 정보 은폐 개념을 기초로 하며 공유 자원을 할당하기 위한 병행성 구조로 이루어져 있다. * 모니터 내의 공유 자원을 사용하려면 프로세스는 반드시 모니터의 진입부를 호출해야 한다. * 외부의 프로시저는 직접 액세스 할 수 없다. * 모니터의 경계에서 상호 배제가 시행된다. * 모니터에는 한순간에 하나의 프로세스만 진입하여 자원을 사용할 수 있다. * 모니터에서는 Wait와 Signal 연산이 사용된다. [그림] >정보 은폐 모니터 내부의 프로시저와 데이터의 정보를 은폐시켜서 다른 외부의 프로시저가 접근하거나 변경하지 못하도록 하는 기법. 'Algorithm' 카테고리의 다른 글
C H A P T E R 4 ::: 주소 지정 방식 :::
기초적인 PC 주소 지정 방식 ★ 하드웨어는 실효 주소를 계산하여 항상 20비트짜리 숫자로 만든다. ★ 한 프로그램이 가질 수 있는 세그먼트의 개수는 4개 이상일 수 있지 예) 데이터 세그먼트의 시작점으로부터 6AH 바이트 떨어져 있는 ★ 프로그램이 실행될 때 프로세서는 오프셋을 해당 세그먼트 레지스터 세그먼트 레지스터가 갖는 값 직접 주소 지정 방식
주소를 지정하는 일반적인 규칙 예) TABLE[BX][SI]+8 ★ 아래의 패턴을 추천함
[출처] C H A P T E R 4 ::: 주소 지정 방식 :::|작성자 현미찹쌀 'Algorithm' 카테고리의 다른 글
|
'분류 전체보기'에 해당되는 글 304건
- 2008.08.21 시스템의 특성
- 2008.08.21 분산시스템아키텍처
- 2008.08.21 소프트웨어 공학 개요 및 사회, 기술적 시스템
- 2008.08.21 S/W System 개발
- 2008.08.20 EUC-kr, Unicode, UTF-8 1
- 2008.08.20 Optimize PC
- 2008.08.19 스케쥴링
- 2008.08.19 선점,비선점 스케쥴링 1
- 2008.08.19 병행프로세스와 상호배제
- 2008.08.19 주소지정방식