유지보수 Maintenance 

: SW개발 단계 중 가장 많은 노력과 비용이 투입되는 단계

: 유지보수를 용이하게 하려면 시험,수정 용이성/ 이해성/ 이식성등이 고려되어야 함

- 종류

> Corrective 수정적 : 잠재적 오류를 찾아서 수정

> Adaptive 적응적 : 환경의 변화를 기존sw에 반영하기 위함

> Perfective 완전적 : 새기능 추가, 성능개선을 위함

> Preventive 예방적 : 오류발생에 대비하여 유지보수, SW재공학 관점에서의 유지보수 유형

 

 SW 재공학 

: 기존 SW를 새로운 요구에 맞도록 기능을 수정/보완/추가하여 성능을 향상 시킴

= 예방적 유지보수

> 목적 : 시스템의 이해성 향상, 재사용성 개선

 

SW 재사용

> 이점 : 개발시간과 비용 단축, 실패위험 감소, 품질/생산성 향상

> 단점 : 표준화 부족, 새로운 개발방법론 도입 어렵 

 

 암호화 알고리즘 

암호화 = Cryptography

> 양방향

대칭키
(공개키 = 암호키)
> 스트림 암호 : 주기긴 난수열 발생 
LFSR, SEAL
> 블록암호 : 긴 평문 암호화, 고정길이 블록암호화 반복
DES, AES, SEED
비대칭키
(암호화- 공개키, 복호화- 개인키)
DH, ECC, RSA(속도↓, 파일크기↑, 소수활용)

> 일방향 (=단방향)

해시함수 변경감지 MDC 키 사용X, 감지코드로 메시지 무결성 보장
MD4, M5, SHA
메시지 인증 MAC 키 사용, 메시지 인증코드 무결성과 사용자 인증보장
HMAC, NMAC

> 데이터 암호화 (네트워크영역)

IPsec IP패킷 무결성, 데이터 무결성/기밀성 보장, Tunnel모드와 전송모드로 운영
ESP- 발신지 인증, HA- 발신지 호스트 인증
SSL/ TLS 전송-응용계층사이 클라이언트와 서버 간의 웹 데이터 암호화 역할
전송시 데이터 무결성 보장
S-HTTP  

+) Salt : 공격을 막기위해 동일 패스워드들이 다른 암호값으로 저장되도록 추가되는 값

 해싱 

: 검색/접근속도 빠름, 삽입/삭제 빈도가 높은 작업에 유리

: 해싱테이블(기억공간)에 할당 -> 해시함수 이용 -> 테이블내 홈주소 계산 후 기억장소 저장/ 검색작업 수행

> Overflow 발생시 개방주소법, 폐쇄주소법, 재해싱 

> 홈 주소 동일시 충돌Collision 발생 > 충돌이 발생한 레코드 집합: Synonym

> 충돌시 선형개방 주소법 사용 (충돌시 다음 버킷들을 차례대로 검색하여 최초의 빈 버킷에 저장함)

 해싱탐색  (키-주소 변환법)

: 키 값으로부터 레코드가 저장되어 있는 주소를 직접계산하여 산출된 주소로 바로 접근하는 방법

 해싱함수 

> 제곱법 : (레코드 키 값 K)^2 후 중간부분을 홈주소로 사용

> 숫자분석법 : K를 이루는 숫자의 분포를 분석하여 고른자리를 필요만큼 택하여 홈주소로 사용

> 제산법 : K를 해시표의 크키보다 크고 가장작은 소수로 나눈 나머지를 홈주소로 사용

> 폴딩법 : K를 여러부분으로 나누고, 각 부분의 값을 더하거나 XOR연산을 통해 나온 결과를 홈주소로 사용

 

 GOF 디자인 패턴

: 생성패턴 5개/ 구조패턴 7개/ 행위패턴 11개로 구성, 서브시스템 컴포넌트와 그 관계를 설계

  PS.팩토리빌더 생성패턴    (암기방법)

 구조=F BAD comPosite 패턴   (암기방법)

 행위 mand MOV.st 패턴   (암기방법)


 모델링 

: 개발팀이 응용문제를 이해하는데에, 여러 분야 엔지니어들이 공통된 개념을 공유하는데 도움

> 사용하는 다이어그램 : UML, DataFlow(DFD), E-R 다이어그램

 DFD 

: 프로세스 위주의 모델링

> 구성요소 : Process , Data Flow ━>, Data Store , 단말

+ 다중값 속성

 UML 

: 의사소통을 위해 표준화한 모델링 언어, 시스템의 산출물을 규정/시각화/문서화하는 언어

: 단순화, 대규모 로드맵이나 개발을 위한 시스템 구축의 기본을 마련, 직관성↑

: SW시스템/ 업무 모델링 (시스템 상호작용, 업무흐름, 시스템 구조, 컴포넌트 관계등을 표시)

: 사물/ 관계/ 다이어그램으로 구성됨

 > 사물 

: 모델을 구성하는 기본요소, 다이어그램 안에서 관계가 형성될 수 있는 대상들

 - 구조사물 : 시스템의 개념적/ 물리적 요소를 표현

 - 행동사물 : 시간/공간에 따른 요소들의 행위를 표현

 - 그룹사물 : 요소들을 그룹으로 묶어서 표현

 - 주해사물 : 부가적인 설명이나 제약조건등을 표현

 > 관계 

일반화
Generalization
실체화
Relization
연관
Association
의존
Dependency
집합관계
Aggregation
구성(포함)
Composition
사물 -------▷기능 ━>
or

----------> ◇ 

- 일반화 : 하나의 사물이 다른사물에 비해 일반적인지 구체적인지 표현

- 실체화 : 오퍼레이션을 수행하도록 지정하는 의미적 관계

          : 사물이 할 수 있거나 해야하는 행위나 인터페이스로 서로를 그룹화 할 수 있는 관계

- 연관 : 2개이상의 사물이 서로 관련되어 있는 관계

- 의존 : 필요에 의해 짧은시간만 연관을 유지하는 관계, 명세 변경시 영향줌, 오퍼레이션의 매개변수로 사용

- 집합 : 하나의 사물이 다른 사물에 포함되어 있는 관계

- 포함 : 집합관계의 특수한 형태로 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계

- 연산 Operation : 클래스의 동작 

 > 다이어그램 종류 

 구조다이어 Compo클래스 대패삼겹    (암기방법)

 행위다이어 Ase CommUse    (암기방법)


 E-R 다이어그램 

: 시스템안에 있는 모든 역할을 표현하여 뷰를 하나로 단일화 함

 > 표기법 

**

개체와 속성 연결 : 직선 

 >객체관계 모델

: 개념적 데이터 모델(논리적표현), 데이터 요소 간의 개체 간 관계가 기본요소임, DBMS 고려X, E-R다이어그램으로 표현

 

 Capability Maturity Model (CMM모델) 

1. 초기단계 (initial)

2. 관리단계 (Repeatable)

3. 정의단계 (Define)

4. 관리단계 (Managed)

5. 최적단계 (Optimizing)

 SW 생명주기(SDLC) 

요구사항 분석→ 설계→ 구현→ 테스트→ 유지보수

: 요구 분석부터 유지보수 전 공정을 체계화하는 절차 

=> Secure SLDC : 보안극복을 위함

 

 생명주기 개발표준 ISO/IEC 12207 

> 기본공정 프로세스 (획득, 공급, 개발, 운영, 유지보수)

> 조직공정 프로세스 (관리, 기반구조, 훈련, 개선)

> 지원공정 프로세스 (품질보증, 검증, 확인, 활동검토, 문제해결)

 

 개발표준 

+ SPICE = 수준 0(불완전단계) ~ 수준5(최적화단계)

 

 SW 비용산정법 

- 결정요소 : 프로젝트(복잡도, 크기, 요구신뢰도), (인적, HD, SW)자원, (개발자 능력, 기간)생산성

- 종류

 SW테스트 원리 

- 결함집중 : 파레토법칙 (오류의 80% 중 전체모듈의 20%내에서 발견됨)이 원인

               : 소수 특정모듈에 결함이 집중되어 추가 발생 가능성↑

- 초기집중 : 요르돈법칙이 원인, 개발 설계시부터 고려, 조기발견가능, 재유입 방지

 

+)브록스 법칙 : 프로젝트 진행 중에 새 인원 투입시 프로젝트 완성이 지연됨

 

 SW개발 프레임워크 

- 주요기능 : 예외처리, 트랜잭션처리, 메모리공유, 데이터소스 관리, 쿼리/로킹 서비스 관리

- 종류

Spring : JAVA 오픈소스의 경량형, 동적 웹사이트, 전자정부 프레임워크 기반 기술
전자정부 : 공공사업과 효과적 구축을 위한 필요기능과 아키텍처 제공, 품질/재사용성을 높이기 위함
: 공통컴포넌트 중복개발 방지
닷넷 : Windows사 개발, 실행환경제공, 가상머신CLR에서 작동, 코드실행관리

 

 SW개발 방법론 

: 개발, 유지보수 등에 필요한 수행법과 도구를 체계적으로 정리, 표준화 한 것으로 생산성과 품질이 향상 됨

 

 가상화 기반 네트워크 

> NFV

 : 범용 하드웨어(서버, 스토리지ㅡ 스위치)에 가상화 기술적용하여 네트워크 기능을 가상화 기능으로 모듈화 

 : 구성요소 -VNFS(sw 패키지), NFVI(흐름테이블을 비교해 패킷처리 제어), MANO(사이클 관리, VNF조율)

> 오버레이 네트워크

 : 구성요소 -DHT, 오버레이노드, 베이스노드, 식별자, 맵핑

> VLAN

 : Broad Cast 도메인을 구분할 수 있게 해주는 기술, 보안성↑

 : 종류 - 프로토콜/ MAC/ 네트워크 주소기반 VLAN

 

 교환망 

- 회선교환방식

: 메시지 전송 전 발생지부터 목적지까지 물리적    통신회선이 연결되어야 하는 방식 - 시분할 타임Slot
시간다중화
TDM버스
- 공간분할  

- 축적교환방식

> 패킷 종류

비패킷형 NPT 패킷형 PT 패킷 교환기 PSE 패킷 다중화 PMX
  : 분할 결합 : 경로설정 : 정보메시지로 조립 전달, 내부에 PAD(패킷 조립, 분해 장치)존재

> 패킷 기능

IP 데이터그램 구조 (경로설정X)

: Version/ Protocol/ Identificatior

 

 X.25프로토콜 

> 물리계층 : 패킷교환망 통해 DCE/DTE간 인터페이스 제공, 전기적/기계적/절차적/기능적 특성가짐, 비트 단위들 교환

> 링크계층 : HDLC 프로토콜 기반

> 패킷계층 : Sliding Window 프로토콜 사용, 다중화기능, 망 고장 시 회복 매커니즘 규정

                  : 연결 지향성을 기술한 가상회선을 지원함(회선 설정/해제)

   * 가상회선 : SVC(통신시에만 통신경로 설정/해제), PVC(통신경로 고정적으로 ) 

 

 IT스토리지 기술 

> 내장디스크형

> 직접부착형 DAS

> 스토리지 가상화 : 여러기기 용량을 물링하여 하나의 기기에 있는거처럼 보임

> 소프트웨어 정의 SDS : 가상화적용, 하나처럼 관리하고 운용, sw를 추상화, 기기 자체에서 분리하여 사용

   > NAS 네트워크연결 스토리지 :  파일을 체계화하여 상위계층에 배포가능

   > SAN 스토리지영역 네트워크 : 고속전송, 장거리연결기능 활용, 저장장치/백업장비를 단일화시킨 시스템

        > FC-SAN,  IP-SAN

 서비스공격 

nmap : 서버에 열린 포트정보를 스캐닝하여 보안취약점을 찾는 도구

    Tripwire : 크래커 침입/ 백도어생성 / 설정파일 변경시 분석하는 도구

 

 매체접근제어 MAC 

**

IEEE 802.4 = 토큰버스

IEEE 802.5 = 토큰링

IEEE 802.11 = 무선LAN

IEEE 802.15 = 블루투스

 

 

 IP주소 

  =  네트워크영역.0.호스트영역 형태

BroadCast : 서브넷 범위 내 모든 시스템에 Frame 전송 -> 그 시스템은 CPU가 패킷 처리하도록 함

              : 트래픽에 비례하고 CPU성능과 반비례

   > 트래픽제한 VLAN : 논리적인LAN, BroadCast가 도메인구분할 수 있게 함, 보안/성능 ↑

MultiCast : 일부분에만 전송, 라우터 지원여부 필수, 탈퇴시 IGMP 사용

UniCast : 정보전송을 위해 Frame에 자신과 목적지의 MAC주소를 전송, CPU성능에 영향X

AniCast : 가장 가까운수신자에게 전송

* IPV4      ------------------------->      IPV6

                      Dualstack

               Header Translation

                      Tunneling

(Tunneling: 꼭 Ipv4상태에서 통과 후 ipv4패킷에서 ipv6 캡슐화 함)

 

+) IPv4의 classE = 실험적인 주소 (기출문제)


 프로토콜 

: 서로다른 기기들 간의 데이터 교환을 원활하게 수행할 수 있도록 표준화 시켜놓은 통신 규약

> 기본요소

     - 구문 Syntax : 전송할 데이터 형식, 부호화, 신호레벨 등 규정

     - 의미 Semantics : 효율적이고 정확한 정보전송을 위한 협조사항과 오류관리를 위한 제어정보 규정

     - 시간 Timing : 두 기기간 통신속도와 메시지의 순서제어 규정

 

 OSI 7계층   

(데이터전송단위) (네트워크장비)

- 1계층 물리계층

    : bit, Hub, 장치연결  ex) ICMP프로토콜

 

- 2계층 데이터 링크계층

    : 프레임, Bridge, 전송, 링크설정/유지/종료 담당, 노드 간 오류/회신/흐름제어기능

    : L2스위치 - MAC주소 기반 스위칭, 전송프레임

 

- 3계층 네트워크계층

    : 패킷, 패킷전달 과정에서 요구하는 서비스 품질을 위한 수단제공 

    : L3스위치 - IP주소 기반, L2에 라우터기능 추가 

    : 라우터 (서로 다른 대역 호스트(LAN, WAN) 상호 간 통신 할 수 있도록 하는 장비, 프로토콜 변환기능)

    : 백본스위치 (네트워크 연결 시 중추적 역할, 대규모 트래픽 처리, 모든 패킷 지나가는 네트워크 중심에 설치)

     ex) ICMP(패킷 처리문제 알림), IP (비연결형 서비스)

    + 논리주소(IP) → 물리주소(MAC) = ARP / 물리주소(MAC) → 논리주소(IP) =RARP 프로토콜

 

- 4계층 전송계층(Transport)

    : 신뢰성 데이터 전송을 위한 오류검출/ 복구/ 흐름제어 역할

    : netcat(UDP와 TCP사용하여 네트워크 연결, 읽고 쓰는 유틸리티)

    : L4스위치 - TCP/ UDP기반으로 트래픽 분류, 부하 작은 곳에 배분하는 Load Balancing기능 제공

- 5계층 세션계층

    : Message, 대화유지를 위한 구조, 연결 접속, 동기제어  ex) RPC, NetBIOS

 

- 6계층 표현계층

    : Message, 형태/하위계층 데이터를 사용자 형태로 변환해줌  ex) JPEG, MPEG(멀티미디어 표준규격)

 

- 7계층 응용계층

    : Message  ex) HTTP(텍스트 기반), SMTP(TCP의 25번 사용, 이메일 전송), FTP(파일 전송), DNS, Telnet

 

+)  IP데이터 그램 구조 : Version/ protocoll/ identificatior

 

 TCP/ IP 프로토콜 

  =OSI의 __계층 역할 / 종류
응용계층 응용,표현,세션 : 프로그램간 데이터 송/수신제공
FTP / SMTP(전자우편교환)/ Telnet/ SNMP/ DNS(IP주소로 매핑)/ HTTP
전송계층 전송 : 호스트간 신뢰성있는 통신제공
TCP(양방향,가상회선연결,스트림위주전달)/ UDP(비연결형, 단순헤더)/ RTCP(패킷전송)
인터넷계층 네트워크  : 데이터전송을 위한 주소지정, 경로설정 제공
IP/ ICMP(헤더=8byte)/ IGMP(멀티캐스트 그룹유지 위해사용)/ ARP/ RARP
네트워크
액세스계층
데이터링크,
물리
: 실제 데이터(프레임)를 송/수신하는 역할
IEEE802, X.25, HDLC, ARQ

 X.25프로토콜 

> 물리계층 : 패킷교환망 통해 DCE/DTE간 인터페이스 제공, 전기적/기계적/절차적/기능적 특성가짐, 비트 단위들 교환

> 링크계층 : HDLC 프로토콜 기반

> 패킷계층 : Sliding Window 프로토콜 사용, 다중화기능, 망 고장 시 회복 매커니즘 규정

                  : 연결 지향성을 기술한 가상회선을 지원함(회선 설정/해제)

   * 가상회선 : SVC(통신시에만 통신경로 설정/해제), PVC(통신경로 고정적으로 ) 

 HDLC프로토콜 

: 비트위주 프로토콜, 점대점/멀티 포인트 링크를 위해 ISO에서 개발

   > 문자지향전송 프레임

 프레임  주소 Address 제어 Control 정보 Data 프레임  FCS부착( for오류검출 )

      ↓                                                                                           => Cyclic Redundancy Check 방식

: FCS 영역검사 / 종류 식별하기 위해 제어 필드 (동작모드 - 정규응답 NRM, 비동기 응답 ARM, 비동기 평형모드 ABM) 사용

 - 프레임 유형

   > Infomation (오류/흐름제어를 위해 S-Frame사용)

   > Supervisory (정보Data 필드없음, 오류제어- Go N Back, 선택적 재전송 ARQ방식 / 흐름제어 - Sliding Window 방식)

   > Unnumbered 비번호

   프레임 = 전송Data + 제어정보

 

 ARQ  (자동반복요구) : 오류 발생시 프레임 재전송 

  > Stop and Wait : 구현간단, 송신측 버퍼 1개만 있어도 됨, 확인메시지 필요, 프레임의 수신번호 이용해 중복 수신여부 확인

  > Go back N / Flow Sending / Selective Repeat   ARQ

 

 

 IP 라우팅 

목적 : IP패킷을 목적지 주소까지 전달하기 위함 

       전달할 정보 DB는 라우팅 TABLE => 테이블 채우는방법 : Connected, Static라우팅, Dynamic라우팅

종류

- Static 라우팅: 경로를 미리 정하고 경로를 설정

- Default 라우팅 : 목적지가 없는 경우

- Dynamic라우팅 : 라우터와 라우팅 프로토콜에 의해 경로를 설정 

     - IGP(내부) : 거리벡터방식RIP / 최적의 경로선택하는 Link-State 방식OSPF

    - EGP(외부): Advanced 거리벡터방식 BGP

 

 라우팅 프로토콜 

RIP : 소규모 네트워크에 적합, 최대홉수 15개, 거리벡터방식, 최단경로 알고리즘 = Bellman-Ford알고리즘

IGRP : 중규모 네트워크에 적합, RIP 단점 보완, 네트워크 상태를 고려하여 라우팅

OSPF : 대규모 네트워크에 적합, 홉수제한 없음, Link-State 방식, 최소지연, 최대처리량 등 라우팅 메트릭지정

        : 라우팅 정보에 변화 발생시 변화된 정보만 라우터에게 알림

BGP : 자율시스템AS간 라우팅 프로토콜, EGP단점 보완, ISP상호간 주로 사용


 경로제어 

: 한 경로에 데이터 양이 집중되는 것을 피하면서 최적의 패킷 교환경로 결정

: 라우팅 테이블 참조

- 제어요소 : 성능 기준, 경로결정 시간/장소, 발생지, 경로정보 생신시간

- 프로토콜

    > IGP : 자율시스템(AS)에 의해 라우팅에 사용 / RIP(소규모, 30초마다 알림), OSPF(대규모, 변화부분만 알림)

    > EGP : 자율시스템간 라우팅에 사용

    > BGP : 자율시스템간 라우팅 테이블 전달하는데 사용, EGP단점보안 (초기 연결시 테이블 교환 -> 이후 정보만 교환)

네트워크 : 정보전달 위해 연결된 통신설비 집합

     > 광대역 WAN : 국가와 대륙간 연결, 속도 느림, 에러 발생률↑, LAN으로 연결된 통신망들을 연결하는 방식

     > 근거리 LAN : 속도 빠름, 에러 발생률↓, LAN끼리 스위치로 연결, 버스/링형 구조 사용

     > 부가가치 VAN : 전송기능 이상의 부가가치를 부여한 정보통신망

                           : 기본통신(전송)/ 네트워크(교환)/ 통신처리/ 정보처리 계층

 

▶ 네트워크 구축 

- 성형(star형)

 : P2P방식 회선, 중앙컴퓨터 통해 데이터 교환 => 중앙컴퓨터 고장 시 영향 O, 단말 제거 용이, 교환 노드 수 가장 적음

- 링형(루프형)

 : P2P방식 회선, 분산/집중제어 가능, 단방향/양방향 전송 가능, 단말 추가/제거 어렵 => 전송 지연 발생

- 버스형

 : 1개의 통신회선과 여러 단말로 구성, 회선길이 제한 있음, 구조가 간단, 단말 추가/제거 용이, 영향력↓,신뢰성↑

- 계층형(분산형)

 : 중앙컴퓨터와 일정 단말, 1개의 회선으로 구성, 분산처리 시스템 구성 방식

- 망형(mesh형)

 : 모든 컴퓨터와 단말이 서로 연결, 노드 연결성↑, 장애 시 다른 단말 사용/ 노드 n개, 회선=n(n-1)/2 개, 포트 n-1개

 

네트워크 구축 모델 

: 코어/ 분배/ 액세스 계층

 

데이터 통신방식 

- 단방향

- 양방향 > Half Duplex : 동시 X, 2 선식 선로 사용

            > Full Duplex : 동시 O, 4 선식 선로 사용, 전송량과 전송매체 용량이 큰 경우 적합

- 비동기식 : start bit, stop bit, 정보 bit로 구성된 한 문자 단위로 하여 전송 + parity bit (오류 검출을 위함)

               : 휴지기간 불규칙, 대량 전송 시 Farming Error 가능성↑, 오버헤드 가능성↓, 전송효율↓, 단거리에 적합

- 동기식 : 미리 정해진 만큼 문자열을 블록으로 생성, 타이밍 신호(클럭)를 공급하여 동기 유지

            : 휴지기간 없음, 전송속도와 효율↑, 오버헤드 없음, 버퍼 기억장치 필요, 원거리에 적합 

   > 문자 동기 : BSC 프로토콜

   > 비트 동기 : SDLC/ ADCCP/ HDLC 프로토콜

HDLC 프로토콜

 

 

 

 스케쥴링 

: 스케쥴링 과정에서 문맥교환 발생

문맥교환 :  이전 상태의 레지스터 내용을 보관, 다른 레지스터를 적재하는 과정, 적재 후 제어 권한을 ISR에 넘김

 

+ Aging기법

: 시스템에서 특정 프로세스의 우선순위가 낮아 무한정 기다리게되는 경우, 한번 양보하거나 기다린 시간에 비례하여 일정시간이 지나면 우선순위를 한 단꼐식 높여 가까운 시간 안에 자원을 할당받도록 하는 기법

 

 OS 성능평가 요인 

- 처리능력 Throughput

   : 단위 시간 내 얼마나 많은 양의 일을 처리할 수 있는가

- 사용가능도 Avaliability

   : 사용자가 요구 시 신속하게 지원해 줄 수 있는가

- 반환시간 Turn Around Time

   : 작업이 응답을 얻을 때까지 걸리는 시간

- 신뢰도 Reliability
   : 어느정도로 정확히 해결할 수 있는가

 

불안전상태 : 어떤 순서로 각 프로세스에 자원을 할당하면 결국 교착상태가 발생

       ↓

 교착상태 Dead Lock

 : 둘 이상 프로세스가 자원을 점유한 상태, 무한정 기다리는 상태

    > 발생 필요충분조건 

점유-대기
Hold and Wait
: 최소한 하나의 자원을 점유하면서 다른 프로세스에 할당되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 함
비선점
Non Preemption
: 다른 프로세스에 할당된 자원은 사용이끝날때까지 강제로 빼앗을 수 없어야함
환형대기
Circular
: 공유자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성, 자신에게 할당된 자원을 점유하면서 앞뒤에 있는 프로세스의 자원을 요구 해야함
상호배제
Mutual excrusion
: 한번에 한개의 프로세스만이 공유자원을 사용할 수 있어야 함

    > 제거방법 :    ↘수행 전 모든 자원 할당

    > 해결방법 

     - Avoidance 회피기법 : 은행가 알고리즘, 교착발생 가능성 배제 불가

     - Preventaion 예방기법 : 자원낭비 심함 / (종류) 점유-대기, 비선점, 상호배제, 환형대기 부정

     - Discovery 발견기법 : 교착상태 프로세스, 자원 발견 / 자원할당 그래프 사용

     - Recovery 회복기법 : 교착상태 프로세스 하나씩 종료 or 자원 선점 시킴

 

Monitor : 경계에서 상호배제 시행, 자료 추상화와 정보은폐를 기초로 함, 공유 데이터와 프로시저로 수겅

 

 운영체제 

: 하드웨어와 소프트웨어 리소스관리, 공통서비스 제공, 스케쥴링 담당, 자원관리, 입출력프로그램 제어 역할

: 사용자와 시스템간 인터페이스 기능제공, 데이터공유, 주변장치 관리, 시스템오류 처리, 응답/반환시간 단축

: 처리기(processor), 기억장치, 주변장치 등 HW자원 제어역할

: 모든 HW, SW의 기능을 사용가능하도록 제어해주는 SW

: 자원 효율적 관리, 오류로부터 시스템을 보호

 

 종류 

- Windows : 유지관리 비용 적음, GUI제공, 선점형 멀티태스킹 제공, OLE사용

- UNIX : 시분할 시스템 적합, 오픈소스, 계층적 트리 구조, 다중사용자와 다중작업 지원, 안정적이고 신뢰적 

       ( Linux : 비용적게 듬 /  Android : 미들웨어와 UI가 포함된 OS / Mac : GUI기반 )

    >구성요소 - 커널 : 주기억 장치에 상주, 프로세스와 하드웨어 간 인터페이스(내부적) 역할

                           : 입출력, 프로세스, 기억장치 관리  +) Bootstraping : 커널을 찾아 메모리에 적재하는 과정

                 - Shell : 시스템-사용자 간 인터페이스, Dos의 Command.com 기능수행, 명령어 해석기능

                           : 보조기억 장치에 상주

    >프로세스간 통신 :  호출시 커널기능 사용 (명령어 -시그널/ 쌍방향통신 -소켓/ 단방향통신 -파이프)

    >Utility : 응용프로그램 처리시 사용, Dos의 외부 명령어, 에디터, 컴파일러, 인터프리터, 디버거

    >Unix 파일시스템의 블록구조 

       - 부트 / 슈퍼 / 데이터 블록

       - i-node 블록: 소유자의 사용자 번호UID, 그룹번호GID, 파일에 대한 정보(크기, 타입, 생성/최종변경 시기, 링크 수)

 

 * Unix 명령어

fork 새 프로세스 생성  exec 새 프로세스 수행  cat  파일 내용 화면에
표시
dup  열린 파일의 디스크립터 복제
chmod  파일 접근 제한 / 허가 chown 소유자변경 ls  현 디렉토리의 파일
목록 확인 
du  해당 디렉토리 정보 확인

+) background 처리를 위해 명령어 끝에 붙이는 연산자 = &

 

 

 시스템 구성요소 

- Process : 입력 데이터 처리방법과 조건에 따라 처리함

- Feedback : 목적달성을 위해 반복적으로 처리함

- Control : 입력부터 출력까지 처리과정을 감독

 

 운용기법 

발달순서: 1>2>3>4

 

 제어프로그램  : 시스템 전체 작동상태를 감지, 스케쥴링, 데이터관리, 인터럽트 처리

    지시↓       종류 - 감시 /작업제어 /자료관리 프로그램

 처리프로그램  : 사용자요구 문제 해결

                   종류 - 서비스 /문제 /언어번역 프로그램

     ** 언어번역 과정 : 원시 프로그램-> 컴파일러/어셈블러-> 목적 프로그램-> 링커-> 로드모듈 ->로더 -> 실행

      로더 : 보조기억장치로부터 주 기억장치에 적재하는 소프트웨어

      로더의 기능 : Allocation할당(기억장치에 공간확보)/ link연결(부프로그램에 할당된 기억장소의 시작주소를 연결 ,대규모적합)

                         Relocation재할당(보조기억장치에 저장된 프로그램의 사용주소들을 기억장소의 실제주소로 재배치)

                         Loading적재

      로더의 종류 - 절대로더 : 간단함, 세그먼트주소를 할당 될 주 기억장치의 주소로 변환역할

                             " "    역할분담 : 기억장소 할당, 연결 - 프로그래머 / 재배치 - 어셈블러 / 적재 - 로더 

                       -  링커 : 실행가능한 로드모듈 생성, 연결기능만 수행하는 로더 (Linking역할)

                       - 동적 적재 로더 (Load - on -call)

                       - compile and go 로더 : 별도 로더없이 언어 번역 프로그램이 로더 기능까지 수행함

 


 가상기억장치 

: 보조기억장치 일부를 주기억장치처럼 사용하는 것

- 구현 방법 > 외부단편화 (세그멘테이션기법) : 페이지를 다양한 크기 논리적 단위로 나눔

                                                           : 기억공간절약, 세그먼트 고유이름/크기, 맵테이블 필요

               > 내부단편화 (페이징기법) : 페이지를 동일하게 나눔 ->페이지 프레임

                           - 페이지 크기 ↑- 공간절약, 무관한정보는 주기억장치에, 테이블 간단

                           - 페이지 크기 ↓- 단편화↓, 효율/입출력시간↑, 페이지 집합 효율적

   ※ Page Fault : 페이지가 주기억장치에 존재하지 않을 경우 발생하는 현상

               +

  참조가능한 프레임X = 페이지 교체 필요 / (프로세스 처리시간 < 페이지교체시간) 경우 Threasing 발생

 

 

  페이지 교체 알고리즘 

  전략 

반입- Fetch / 배치- placement / 교체 - replacement

 종류  

- 상주기간 ↑ - FIFO / ↓ - LIFO / 최근 참조 안한 - LFU / 오래 사용안한 - LRU == NUR

- 참조횟수↓, 호출Reference/ 변형Modified bit 가짐 - NUR 

- 주기억장치에 오래 상주 한 - SCR / 앞으로 오래 사용되지 않을 - Optimal

   

 Thread  : 다중프로그래밍 시스템에서 cpu받아 수행하는 프로그램 단위로 프로세스

            : Task 보다 작은 작업 단위  (Task 개당 여러 Thread로 나뉘어 수행 가능)

            : 독립적 제어흐름 가짐, 고유 레지스터/스택 사용함  

 

 프로세스  : 프로세서가 할당되는, 프로시저가 활동중인 상태의 프로그램, 비동기적 행위를 일으키는 주체 

              : CPU(프로세서)가 할당 받는 프로그램으로 정의 할 수 있음  

              : 실행중이며, PCB를 가진 프로그램, 전송 메시지=> 형식, 가변/고정 길이 메시지

                 PCB : 프로세스 정보(현재상태, 고유식별자PID,스케쥴링, 우선순위, cpu레지스터정보)저장한 저장소

                프로세서 : 기억장치 내 정보 균일하게 접근 못하고 특정부분을 집중적 참조함, OS가 관리하는 실행단위

                매크로 프로세서 기본수행작업 : 매크로 호출/정의 인식 , 정의저장 , 호출 확장/인수 치환

                프로세서 상호 연결 구조 > 하이퍼 큐브 :  CPU갯수 = 2^n (n= 연결점 갯수)

     - Locality 지역성 : 실행중인 프로세스가 주기억장치 참조시 일부 페이지만 집중적으로 참조하는 현상

          - 시간지역성 : 가까운 장래에도 참조될 가능성 ↑ ex) Loop,Stack, 집계, 서브루틴

          - 공간지역성 : 프로세스 실행시 일정위치의 페이지 집중적 접근 ex) 배열순회, 순차코드의 실행

     - Working Set : 프로세스가 일정시간동안 자주 참조하는 페이지의 집합

            = 참조페이지 중 중복 페이지만 제외한 페이지들 

> 프로세스 스케쥴러 : 준비상태의 프로세스에 실행 될 프로세스를 선정하여 CPU할당 함

> 프로세스 상태 : 시작, 준비, 실행, 대기, 종료 상태

WakeUp Dispatch Time run out Spooling
대기 → 준비상태 준비 → 실행상태 실행 → 준비상태 보류상태

+) Spooling : 입출력 장치 속도 보완법으로 디스크의 일부를 사용함

      ↔ 버퍼링 : 주 기억장치의 일부를 사용

 

 

+ Recent posts