응용SW기초기술활용 - 핵심정리

응용SW기초기술활용

1. 인터넷 구성의 개념

  • TCP/IP 프로토콜을 기반으로 전세계 수 많은 네트워크들이 연결된 광범위한 컴퓨터 통신망
  • 장비 종류
    • 게이트웨이
    • 라우터
    • 리피터
    • 허브
    • 랜 카드
    • 브리지
    • 스위치

2. 네트워크 7계층

  • 국제 표준화 기구인 ISO에서 다른 시스템간 통신을 위해 네트워크 구조를 제시한 기본 모델
  • OSI 7 Layer

3. 네트워크 프로토콜

  • 프로토콜은 서로 다른 기기들 간의 데이터 교환을 원활하게 수행할 수 있도록 표준화 시켜 놓은 통신 규약
  • TCP/IP 4계층
    • 네트워크 액세스
    • 인터넷
    • 전송
    • 응용
  • 프로토콜의 기본 요소
    • 구문
    • 의미
    • 시간
  • 라우팅 프로토콜
    • RIP
    • IGRP
    • OSPF
    • BGP
  • OSI 7 Layer

4. IP

  • OSI 7 계층의 네트워크 계층에서 호소트의 주소지정과 패킷분할 및 조립기능 담당
  • IPv4 와 IPv6 주소 비교

5. TCP/UDP

  • OSI 7계층의 전송계층에서 CRC체크와 재전송 기능을 통해 신뢰성있는 연결형 서비스 제공
  • TCP 대표 서비스
    • FTP
    • Telnet
    • Http
    • SMTP
    • POP
    • IMAP
  • UDP는 비연결성이고 신뢰성 없는 데이터 전송
  • UDP는 대표 서비스
    • SNMP
    • DNS
    • TFTP
    • NFS
    • NETBIOS
    • 인터넷 게임

응용SW기초기술활용 - TCP/UDP

응용SW기초기술활용

TCP; Transmission Control Protocol 의 개념

  • OSI 7계층의 전송계층에서 CRC체크와 재전송 기능을 통해 신뢰성있는 연결형 서비스 제공
    • 연결형 서비스
      • 송수신 측간을 논리적으로 연결한 후 데이터를 전송하는 방식
  • Flow Control 기능을 수행하여 단계별 데이터 전송 상황을 체크
  • 논리적인 1:1 가상 회선을 지원하여 해당 경로로만 데이터 전달
  • 기능
    • 패킷의 다중화
    • 순서 제어
    • 오류 제어
    • 흐름 제어
  • 대표서비스
    • FTP
    • Telnet
    • Http
    • SMTP
    • POP
    • IMAP
  • TCP 헤더 정보
    • Souce/Destination Port
    • Sequence Number
    • Acknowledge Number
    • Cheksum
  • TCP 구조

UDP; User Datagram Protocol의 개념

  • OSI 7계층의 전송계층에서 데이터 전송 전에 연결을 설정하지 않는 비연결형 서비스를 제공
  • 비신뢰성 데이터 전송
  • 하나의 송신 정보를 다수의 인원이 수신해야할 경우 UDP 사용
  • 대표 서비스
    • SNMP
    • DNS
    • TFTP
    • NFS
    • NETBIOS
    • 인터넷 게임
  • UDP 헤더 포함 정보
    • Source
    • Destination Port
    • Length
    • Cheksum
  • UDP 구조

TCP와 UDP 차이점

  • TCP
    • 데이터 전송 전 연결설정
    • 1:1 전송
    • 단계별 데이터 전송
    • 신뢰성있는 데이터 전송
    • 등기 우편물
  • UDP
    • 데이터 전송 전 연결 미설정
    • 1:다 전송
    • 데이터 전송
    • 비 신뢰성 데이터 전송
    • 소포 우편물
      TCP와 UDP 차이점

응용SW기초기술활용 - IP

응용SW기초기술활용

IP; Internet Protocol 의 개념

  • OSI 7 계층의 네트워크 계층에서 호소트의 주소지정과 패킷분할 및 조립기능 담당
  • 데이터그램을 기반으로 비연결형 서비스 제공
    • 비연결형통신
      • 송수신 측간에 논리적 연결 없이 데이터를 독립적으로 전송하는 방식
  • IP 헤더의 길이는 최소 20Byte ~ 60Byte
  • IP 헤더 포함 정보
    • Version
    • Header Length
    • Total Packet Length
    • Header
    • Checksum
    • Source IP Address
    • Destination IP 주소
  • IPv4 Header

IPv4 와 IPv6 주소 비교

IPv4 와 IPv6 주소 비교

Subnetting 서브네팅

  • 할당된 네트워크 주소를 다시 여러 개의 작은 네트워크로 나누어 사용
  • IPv4기준으로 4Byte 주소 중 네트워크 주소와 호스트 주소를 구분하기 위한 비트를 Subment Maks 서브넷 마스크라고 함

Domain Name 도메인 네임

  • 숫자로 된 IP주소를 사람이 이해하기 쉬운 문자 형태로 표현 한 것
  • 호스트 컴퓨터이름.소속기관이름.소속기관종류.소속국가명 순으로 구성되며 왼쪽에서 오른쪽으로 갈수록 상위 도메인
  • 문자로 된 도메인 네임을 IP주소로 변환하는 역할을 담당하는 시스템은 DNS; Domain Name System 서버

응용SW기초기술활용 - 네트워크 7계층

응용SW기초기술활용

OSI; Open System Interconnection 참조 모델 개요

  • 국제 표준화 기구인 ISO에서 다른 시스템간 통신을 위해 네트워크 구조를 제시한 기본 모델
  • 데이터 통신 시 필요한 장비 및 처리 방법 등을 7단계로 표준화
  • OSI 7 Layer
  • OSI 7 Layer

OSI 참조 모델의 목적

  • 서로 다른 시스템 간을 상호 접속하기 위한 개념 규정
  • OSI 규격을 개발하기 위한 범위 정립
  • 관련 규정의 적합성을 조절하기 위한 공통적인 기반 제공

OSI 참조 모델의 계층별 데이터 단위

  • 프로토콜 데이터 단위 PDU; Protocol Data Unit
    • 7계층 응용 계층 : 메시지(Message)
    • 6계층 표현 계층 : 메시지(Message)
    • 5계층 세션 계층 : 메시지(Message)
    • 4계층 전송 계층 : 세그먼트(Segment)
    • 3계층 네트워크 계층 : 패킷(Packet)
    • 2계층 데이터링크 계층 : 프레임(Frame)
    • 1계층 물리 계층 : 비트(bit)

OSI 7 Layer 계층별 기능

1. Physical Layer 물리 계층

  • 전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의
  • 물리적 전송매체와 전송 신호방식을 정의
  • 관련 장비
    • 허브
    • 리피터
  • 두 개의 개발 시스템들 간 속도 차이를 해결하기 위한 흐름 제어
  • 프레임의 시작과 끝을 구분하기 위한 프레임의 동기화
  • 오류의 검출과 회복을 위한 오류 제어
  • 프레임의 순서적 전송을 위한 순서 제어
  • 관련 장비
    • 랜카드
    • 브리지
    • 스위치

3. Network Layer 네트워크 계층

  • 개방 시스템들 간의 네트워크 연결을 설정, 유지, 해제하는 기능과 경로 설정, 데이터 교화 및 중계, 트래픽 제어, 패킷 정보 전송
  • 관련 장비
    • 라우터

4. Transport Layer 전송 계층

  • 논리적 안정과 균일한 데이터 전송 서비스를 제공함으로써 종단시스템간에 투명한 데이터 전송을 가능하게 함
  • 종단 시스템간 전송 연결설정, 데이터 전송, 연결해제 기능과 오류 제어, 흐름제어 수행
  • TCP, UDP의 표준
  • 관련 장비
    • 게이트웨이

5. Session Layer 세션 계층

  • 송/수신 측 간의 관련성을 유지하고 대화 제어 담당

6. Presentation Layer 표현 계층

  • 응용계층으로부터 받은 데이터를 세션 계층에 보내기 전에 통신에 적당한 형태로 변환하고, 세션 계층에서 받은 데이터는 응용 계층에 맞게 변환하는 기능
  • 코드변환, 데이터 암호화, 데이터 압축, 구문 검색, 정보형식 변환

7. Application Layer 응용 계층

  • 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행
  • 정보 교환, 파일 전송, 가상 터미널

응용SW기초기술활용 - 인터넷 구성의 개념

응용SW기초기술활용

  • 네트웤크 계층 구조에서 각 층의 역할을 이해
  • 응용의 특성에 따라 TCP와 UDP를 구별하여 적용
  • 패킷 스위칭 시스템 이해하고, 다양한 라우팅 알고리즘과 IP 프로토콜을 설명

용어사전

  • OSI 7 Layer

    • 국제표준화 기구인 ISO(International Standard Organization)에서 다른 시스템간 통신을 위해 네트워크 구조를 제시한 기본 모델로 7계층 구조
  • Protocol 프로토콜

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

인터넷의 개념

  • TCP/IP 프로토콜을 기반으로 전세계 수 많은 네트워크들이 연결된 광범위한 컴퓨터 통신망
  • 1969년 미 국방성의 ARPANET에서 시작
  • 유닉스 운영체제를 기반으로 함
  • 인터넷에 연결된 모든 컴퓨터는 고유한 IP주소를 가짐
  • 동시에 여러 사람이 인터넷을 이용하여 데이터 송수신 할 수 있도록 패킷 단위로 데이터를 분할하여 전송하는 패킷교환 방식을 사용
  • 컴퓨터 또는 네트워크로 서로 연결하기 위해 게이트 웨이, 라우터, 브리지, 허브 등 네트워크 장비가 필요
  • 증폭기는 아날로그 신호 증폭을 위한 장비로 인터-네트워킹과는 무관

네트워크 관련 장비

1. Gateway 게이트웨이

  • LAN에서 서로 다른 프로토콜의 네트워크에 데이터를 보내거나 다른 네트워크로 부터 데이터를 받아들이는 출입구 역할
  • 수행 역할
    • 데이터 형식 변환
    • 주소 변환
    • 프로토콜 변환

2. Router 라우터

  • 서로 다른 프로토콜의 LAN이나 LAN과 WAN의 연결 기능에 데이터 전송의 최적의 경로를 선택할 수 있는 기능 추가

3. Repeater 리피터

  • 전송되는 신호가 전송 선로의 특성 및 외부 충격 등 요인으로 원래의 형태와 다르게 왜곡되거나 약해질 경우 원래의 신호 형태로 재생하여 다시 전송하는 역할 수행

4. Hub 허브

  • 사무실이나 가까운 거리의 컴퓨터들을 연결하는 장치로 각 회선을 통합적으로 관리하며 신호 증폭 기능의 리피터 역할도 포함
  • 종류
    • 더미 허브
      • LAN이 보유한 대역폭을 연결된 컴퓨터 수 만큼 나누어 제공
      • 100MB 대역폭 5대 연결시 20MB 대역폭으로 속도 낮아짐
    • 스위칭 허브
      • 네트워크 상에 흐르는 데이터의 유무 및 흐름을 제어하며, 연결된 컴퓨터 수에 상관없이 LAN의 최대 대역폭을 사용할 수 있도록 신호 증폭 기능을 제공하는 허브

5. NIC; Network Interface Card 랜 카드

  • 컴퓨터가 네트워크에 연결되도록 하는 접촉 점 역할 장치로, 이더넷 카드 혹은 네트워크 어댑터라고 함

6. Bridge 브리지

  • 동일한 프로토콜을 사용하는 LAN과 LAN을 연결하거나 LAN 안에서 컴퓨터 그룹을 연결하는 기능을 수행
  • 네트워크를 분산적으로 구성하여 보안성을 높일 수 있음

7. Switch 스위치

  • 브리지와 같이 LAN과 LAN을 연결하여 훨씬 더 큰 LAN을 만드는 장치
  • 하드웨어를 기반으로 처리하므로 전송 속도가 빠름
  • 포트마다 각기 다른 전송 속도를 지원하도록 제어할 수 있고 수십에서 수백 개의 포트 제공

네트워크 규모에 따른 분류

  • LAN; Local Area Network
    • 근거리 통신망
  • MAN; Metropolitan Area Network
    • 대도시 통신망
  • WAN; Wide Area Network
    • 광대역 통신망

응용SW기초기술활용 - 핵심정리

응용SW기초기술활용

1. 운영체제 종류

  • 컴퓨터 시스템의 자원들(CPU, 주기억장치, 보조기억장치, 파일 등)을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 인터페이스를 제공하는 시스템 소프트웨어
  • 종류
    • Windows
    • UNIX
    • LINUX
    • MacOS
    • MS-DOS

2. 메모리 관리

  • 기억장치의 계층 구조(산 형태 순서 정렬)
    • 레지스터
    • 캐시 기억장치
    • 주기억장치
    • 보조기억장치
  • 기억장치 관리 전략
    • Fetch
    • Placement
    • Replacement
  • 주기억장치 할당 기법
    • 연속 할당
    • 분산 할당
  • 가상기억장치의 구현 기법
    • 페이징
    • 세그먼테이션
  • 페이지 교체 알고리즘 종류
    • FIFO
    • LRU
    • NUR
    • OPT
    • LFU
    • SCR
  • 가상기억장치의 기타 관리
    • Locality
    • Working Set
    • Thrashing

3. 프로세스 스케줄링

  • 프로세스
    • 프로세서에 의해 처리되는 사용자 프로그램
    • 프로세서
      • CPU
      • 처리기
  • 스레드
    • 프로세스 내에서 작업 단위로서 시스템의 여러 자원을 할당 받아 실행하는 프로그램의 단위
  • 스케줄링
    • 프로세스가 생성되어 실행될 때 필요한 시스템의 여러 자원ㅇ르 해당 프로세스에 할당하는 작업
  • 비선점 스케줄링의 종류
    • FIFO(FCFS)
    • SJF
    • HRN
  • 선점 스케줄링의 종류
    • RR
    • SRT
    • MLQ
    • MFQ

4. 환경변수

  • 시스템 소프트웨어 동작에 영향을 미치는 동적인 값들의 모임
  • 윈도우 환경변수
    • %APPDATA%, %COMSPEC%, %HOMEPATH%, %PATH%, %PATHEXT%, %PROGRAMFILES%, %SYSTEMDRIVE%, %SYSTEMROOT% , %USERNAME%, %USERPROFILE%
  • 유닉스 환경변수
    • $DISPLAY, $HOME, $LANG, $MAIL, $PATH, $PS1, $PWD, $TERM, $USER

5. Shell Script

  • GUI
    • Graphic User Interface
    • 마우스로 아이콘이나 메뉴를 선택하여 작업
  • CLI
    • Command Line Interface
    • 키보드로 명령어를 직접 입력하여 작업

UNIX와 LINUX 기본 명령어

명령어 기능
cat 파일 내용을 화면에 표시
chdir 디렉토리 위치 변경
chmod 파일의 사용 허가 지정
chown 소유자 변경
cp 파일 복사
getpid 자신의 프로세스 아이디를 얻음
ls 현재 디렉토리 내의 파일 목록을 표시
rm 파일 삭제

응용SW기초기술활용 - Shell Script

응용SW기초기술활용

운영체제 기본 명령어 개요

  • Shell은 사용자의 명령어를 수행하는 명령어 해석기

  • 운영체제를 제어하는 방법

    • GUI
      • Graphic User Interface
      • 마우스로 아이콘이나 메뉴를 선택하여 작업
    • CLI
      • Command Line Interface
      • 키보드로 명령어를 직접 입력하여 작업

윈도우 CLI 기본 명령어

명령어 기능
ATTRIP 파일의 속성을 변경
CD 디렉토리의 위치 변경
CHKDSK 디스크 상태 점검
CLS 화면의 내용을 지움
COPY 파일 복사
DEL 파일 삭제
DIR 파일의 목록 표시
FIND 파일 검색
FORMAT 디스크 표면을 트랙과 섹터로 초기화
MD 디렉토리 생성
MOVE 파일 이동
REN 파일 이름 변경
TYPE 파일의 내용 표시

UNIX와 LINUX 기본 명령어

명령어 기능
cat 파일 내용을 화면에 표시
chdir 디렉토리 위치 변경
chmod 파일의 사용 허가 지정
chown 소유자 변경
cp 파일 복사
exec 새로운 프로세스 수행
find 파일 검색
fork 새로운 프로세스를 생성
fsck 파일시스템을 검사하고 보수
getpid 자신의 프로세스 아이디를 얻음
ls 현재 디렉토리 내의 파일 목록을 표시
rm 파일 삭제
wait fork 후 exec에 의해 실행되는 프로세스의 상위 프로세스가 하위 프로세스 종료 등의 event를 기다림

응용SW기초기술활용 - 환경변수

응용SW기초기술활용

환경변수의 개념

  • 시스템 소프트웨어의 동작에 영향을 미치는 동적인 값들의 모임
  • 변수명과 값으로 구성
  • 시스템의 기본 정보를 저장
  • 자식프로세스에 상속됨
  • 부모 프로세스에서 상속받아 사용
  • 시스템 전반에 걸쳐 적용되는 시스템 환경변수와 사용자 계정 내에만 적용되는 사용자 환경변수로 구분

환경변수 보기

  • Windows
    • echo %PATH%
  • UNIX
    • echo $PATH

환경변수 설정

  • Windows
    • self 변수 = 값
  • UNIX
    • env 변수 = 값
    • set 변수 = 값

윈도우 운영체제 환경변수

환경변수 용도
%APPDATA% 설치된 모든 프로그램의 필요 데이터가 저장된 폴더
%COMSPEC% 기본 명령 프롬프트로 사용할 프로그램
%HOMEPATH% 로그인한 계정의 기본 폴더
%PATH% 실행 파일을 찾는 경로
%PATHEXT% CMD에서 실행할 수 있는 파일 확장자 목록
%PROGRAMFILES% 기본프로그램의 설치 폴더
%SYSTEMDRIVE% 윈도우가 부팅된 드라이브
%SYSTEMROOT% 부팅된 운영체제가 들어 있는 폴더
%USERNAME% 로그인한 계정 이름
%USERPROFILE% 로그인한 유저의 프로필이 저장된 폴더

UNIX와 LINUX 운영체제 환경변수

환경변수 용도
$DISPLAY 현재 디스플레이 위치
$HOME 사용자의 홈 디렉토리
$LANG 프로그램 사용 시 기본적으로 지원되는 언어
$MAIL 이메일을 보관하는 경로
$PATH 실행파일을 찾는 경로
$PS1 Shell Prompt 정보
$PWD 현재 작업하는 디렉토리
$TERM 로그인 터미널 타입
$USER 사용자의 이름

응용SW기초기술활용 - 프로세스 스케줄링

응용SW기초기술활용

프로세스의 개념

  • 처리기, CPU에 의해 처리되는 사용자 프로그램
  • 정의
    • PCB(Process Controll Block)을 가지는 프로그램
    • 실기억장치에 저장된 프로그램
    • 프로세서가 할당되는 실체로서, 디스패치가 가능한 단위
    • 프로시저가 활동 중인 것
    • 서로 규칙적이거나 연속적이지 않고 독립적으로 실행되므로 비동기적 행위를 일으키는 주체
    • 지정된 결과를 얻기 위한 일련의 계통적 동작
    • 목적 또는 결과에 따라 발생되는 사건들의 과정
    • 운영체제가 관리하는 실행 단위

PCB; Process Control Block, 프로세스 제어 블록

  • 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳
  • 각 프로세스가 생성될 때마다 고유의 PCB가 생성되고, 프로세스가 완료되면 PCB는 제거됨
  • PCB에 저장되는 정보의 종류
    • 프로세스의 현재 상태
    • 포인터
      • 부모 프로세스의 주소 기억
      • 자식 프로세스의 주소 기억
      • 현재 프로세스가 위치한 주소 기억
      • 프로세스에 할당된 각 자원에 대한 주소 기억
    • 프로세스 고유 식별자
    • 스케줄링 및 프로세스의 우선순위
    • CPU 레지스터 정보
    • 주기억장치 관리 정보
    • 입출력 상대 정보
    • 계정 정보

Thread 스레드

  • 프로세스 내에서의 작업 단위로서 시스템의 여러 자원을 할당 받아 실행하는 프로그램 단위
  • 하나의 프로세스에 하나의 스레드가 존재하는 경우는 단일 스레드, 하나 이상의 스레드가 존재하는 경우는 다중스레드
  • 프로세스의 일부 특성을 갖고 있기 때문에 경량 프로세스라고 함
  • 스레드 기반 시스템에서는 스레드는 독립적인 스케줄링의 최소 단위로서 프로세스의 역할 담당
  • 장점
    • 하드웨어, 운영체제의 성능과 응용 프로그램 처리율 향상
    • 응용 프로그램의 응답 시간 단축
    • 실행 환경을 공유 시켜 기억장소의 낭비를 줄임
    • 프로세스들 간의 통신 향상
  • 프로세스 내부의 작업 단위

Scheduling 스케줄링의 개념

  • CPU나 자원을 효율적으로 사용하기 위한 정책
  • 프로세스가 생성되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업
  • 프로세스가 생성되어 완료될 때 까지 프로세스는 여러 종류의 스케줄링 과정을 거침

스케줄링의 목적

  • 모든 프로세스에게 공정하게 할당
  • 단위 시간당 프로세스를 처리하는 비율 증가
  • CPU가 순수하게 프로세를 실행하는데 사용되는 시간 비율 증가
  • 우선 순위가 높은 프로세를 먼저 실행
  • 오버헤드를 최소화
    • 오버헤드
      • 시스템에서 목적으로 하는 효과를 얻기 위해 본질적인 것은 아니지만 요구되는 작동, 또는 그 때문에 필요한 자원
  • 작업을 지시하고 반응하는 응답시간 최소화
  • 프로세스를 제출한 시간부터 실행이 완료될 때까지 걸리는 반환시간을 최소화
  • 프로세스가 준비상태 큐에서 대기하는 시간을 최소화
  • 메모리, 입력장치 등의 자원을 균형 있게 사용
  • 자원을 사용하기 위해 무한정 연기되는 상태를 회피
  • 프로세스에게 CPU를 할당하고 문맥 교환을 하는 프로세스 관리기능

Non-Preemptive 비선점 스케줄링

  • 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법
  • 프로세스가 CPU를 할당 받으면 해당 프로세스가 완료될 때까지 CPU를 사용
  • 모든 프로세스에 대한 요구를 공정하게 처리
  • 프로세스 응답 시간의 예측이 용이하며, 일괄 처리 방식에 적합
  • 짧은 작업이 긴 작업을 기다리는 경우 발생할 수 있음
  • 종류
    • FIFO(FCFS)
    • SJF
    • HRN
    • Priority

Preemptive 선점 스케줄링

  • 하나의 프로세스가 CPU를 할당 받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법
  • 우선순위가 높은 프로세를 빠르게 처리
  • 빠른 응답시간을 요구하는 대화식 시분할 시스템에 사용됨
  • 많은 오버헤드를 초래
  • 선점이 가능하도록 일정 시간 배당에 대한 인터럽트용 타이머 클록 필요
  • 종류
    • RR
    • SRT
    • Preemptive
    • Priority
    • MLQ
    • MFQ

프로세스 스케줄링 종류 및 특징

프로세스 스케줄링 종류 및 특징

응용SW기초기술활용 - 메모리관리

응용SW기초기술활용

메모리 관리 개념

  • 프로그램의 실행이 종료될 때 까지 메로리를 가용한 상태로 유지 및 관리하는 것
  • 다수의 프로그램 실행 중 메모리가 꽉 차게 되면 시스템의 속도가 느려지고 멈추는 현상이 발생
  • CPU와 지속적으로 데이터를 송수신하는 상황에서 어떤 부분의 메모리가 현재 사용되는지 어떤 순서로 메모리에 입출력되어야 하는지, 메모리 공간이 필요할 경우 어떻게 확보 및 제거 할지에 대한 종합적인 관리

기억장치 계층 구조의 특징

기억장치계층구조의 특징

  • 기억장치 계층 구조의 상위 장치일 수 록 접근속도와 접근 시간이 빠르지만 기억용량이 적고 고가
  • 주기억장치는 각기 자신의 주소를 갖는 워드 또는 바이트들로 구성되어 있으며 주소를 이용하여 액세스 가능
  • 보조기억장치의 데이터는 주기억장치에 적재된 후 CPU에 의해 액세스 가능

기억장치 관리 전략

  • 보조기억장치의 프로그램이나 데이터를 주기억장치에 적재시키는 시기, 적재 위치 등을 지정하여 한정도니 주기억장치의 공간을 효율적으로 사용하기 위한 것
  • 종류
    • 반입(Fetch) 전략 : 언제 적재?
    • 배치(Placement) 전략 : 어디에 위치?
    • 교체(Replacement) 전략 : 어느 영역 교체?

1. Fetch 전략

  • 보조기억장치에 보관 중인 프로그램이나 데이터를 언제 주기억 장치로 적재할 것인지를 결정
  • Demand Fetch 요구 반입
    • 실행 중인 프로그램이 특정 프로그램이나 데이터 등의 참조를 요구할 때 적재
  • Anticipatory Fetch 예상 반입
    • 실행 중인 프로그램에 의해 참조될 프로그램이나 데이터를 미리 예상하여 적재

2. Placement 전략

  • 새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인지를 결정
  • First Fit 최초 적합
    • 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 첫번째 분할 영역에 배치
  • Best Fit 최적 적합
    • 프로그램이나 데이터가 들어갈 수 있는 크기의 빈영역 중에서 빈 기억공간을 가장 작게 남기는 분할 영역에 배치
  • Worst Fit 최악 적합
    • 프로그램이나 데이터가 들어갈 수 있는 크기의 빈영역 중에서 빈 기억공간을 가장 많게 남기는 분할 영역에 배치

3. Replacement 전략

  • Swapping 스와핑 기법
    • 주기억장치의 모든 영역이 이미 사용중인 상태에서 새로운 프로그램이나 데이터를 주기억장치에 배치하려고할 때 사용중인 어느 영역을 교체하여 사용할 것인지 결정
    • Swap Out
      • 주기억장치의 프로그램이 보조기억장치로 이동
    • Swap In
      • 보조기억장치에서 주기억장치로 이동
  • 스와핑 기법은 가상 기억장치의 페이징 기법으로 발전
    • FIFO; First In First Out, 선입선출
    • OPT; OPTimeal replacement, 최적교체
    • LRU; Least Recently Used, 최근 오래 사용 않은 페이지 교체
    • LFU; Least Frequently Used, 사용 빈도가 가장 작은 페이지
    • NUR; Not Used Recently, 최근 사용 않은 페이지 교체
    • SCR; Second Chance Replacement, 2차 기회 교체

주기억장치 할당 기법의 개념

  • 프로그램이나 데이터를 실행시키기 위해 주기억장치에 어떻게 할당할 것인지에 대한 내용

주기억장치 할당 기법의 종류

  • 연속 할당 기법
    • 프로그램을 주기억장치에 연속적으로 할당하는 기법
    • 단일 분할 할당 기법
      • 운영체제영역과 단일 사용자 영역으로 분할
      • 오버레이
        • 주기억장치보다 큰 프로그램 실행 기법
      • 스와핑
        • 주기억장치 프로그램을 보조기억장치 이동
    • 다중 분할 할당 기법
      • 사용자 영역을 여러 개의 고정된 크기로 분할
      • 고정 분할(정적) 할당
        • 사용자 영역을 여러 개의 고정된 크기로 분할
      • 가변 분할(동적) 할당
        • 프로그램의 필요한 크기로 영역 분할, 고정 분할 할당 기법의 영역 내의 단편화 해결
  • 분산 할당 기법
    • 가상기억장치의 내용을 특정 단위의 조각으로 나누어 주기억장치 내에 분산하여 할당하는 기법
    • 페이징 기법
    • 세그먼트 기법

가상기억장치의 개념

  • VMU; Virtual Memory Unit 보조기억장치의 일부를 주기억장치처럼 사용하는 것
  • 주기억장치의 용량 보다 큰 프로그램을 실행하기 위해 사용
  • 주기억장칭의 이용률과 다중 프로그래밍의 효율성 제고
  • 가상기억장치에 저장된 프로그램을 실행하려면 가상기억장치의 주소를 기억장치의 주소로 바꾸는 주소 변환 작업이 필요
  • 블록 단위로 나누어 사용하므로 연속 할당 방식에서 발생할 수 있는 단편화를 해결할 수 있음
  • 프로그램을 여러 개의 작은 블록 단위로 나누어서 가상기억장치에 보관해놓고, 프로그램 실행시 요구되는 블록만 주기억장치에 불연속적으로 할당하여 처리

1. Paging 페이징 기법

  • 가상기억장치에 보관되어있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 나눠진 가상기억장치의 프로그램을 주기억장치의 영역인 페이지 프레임에 적재시켜 실행하는 기법
    • 페이지 크기
      • 1 ~ 4KB
  • 외부 단편화는 발생하지 않으나 내부 단편화 발생
    • 내부 단편화
      • 사용할 프로그램이 16KB일 때 페이지 크기를 4KB씩 나누면 2KB 단편화 발생
  • 주소 변환을 위해서는 페이지의 위치 정보를 가지고 있는 페이지 맵 테이블(Page Map Table)이 필요
  • 페이징에서 가상주소는 (p,d)로 표현하며, p는 참조하는 항목이 잇는 가상메모리의 페이지, d는 페이지 안에서 참조하는 항목이 위치한 변위
  • 실제 주소 변환은 페이지 프레임 크기가 ps일 때 p`*ps+d

2. Segmentation 세그멘테이션 기법

  • 가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행시키는 방법
  • 내부 단편화는 발생하지 않으나 외부 단편화가 발생
  • 세그먼트가 주기억장치에 적재될 때 다른 세그먼트에게 할당된 영역을 침범할 수 없으며, 이를 위해 기억장치보호키가 필요
  • 주소 변환을 위해서는 세그먼트가 존재하는 위치 정보를 가지고 있는 세그먼트 맵 테이블 이 필요
  • 세그먼테이션 가상주소는 (s,d)로 표현하며, s는 참조하는 항목이 있는 가상메모리의 세그먼트 번호, d느 세그먼트 s에서 참조하는 항목부터 있는 곳까지의 변위
  • 실제 주소 변환은 세그먼트 번호의 주기억장치 시작주소가 s`일 때 s` +d

페이지 교체 알고리즘 개념

  • CPU가 액세스한 가상 페이지가 주기억장치에 없는 페이지 부재 Page Fault가 발생했을 때, 가상기억장치의 필요한 페이지를 주기억장치에 적재해야 함
  • 주기억장치의 모든 페이지 프레임이 사용 중 이라면 어떤 페이지 프레임을 선택하여 교체할 것인지 결정

페이지 교체 알고리즘 종류

1. FIFO; First In First Out, 선입선출

  • 각 페이지가 주기억장치에 적재될 때마다 그때의 시간을 기억시켜 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체하는 기법
  • ex) 2개의 프레임을 수용할 수 있는 주기억장치에서 FIFO 알고리즘을 사용할 경우 페이지 결함의 발생횟수는?
    페이지 참조 순서 : 1, 2, 1, 3, 2, 4
    답 : 4
    해설
    - 2개의 프레임에는 1, 2 가 들어가면서 결함 발생 합 2회 (1, 2)
    - 1은 그대로 (1, 2, 1)
    - 가장 오래된 것은 첫 번째 프레임이므로 여기에 3이 들어가면서 결함 발생 3회 (1, 2, 1, 3)
    - 2는 그대로 (1, 2, 1, 3, 2)
    - 2가 3보다 오래 있었으므로 여기에 4가 들어가면서 결함 발생 4회 (1, 2, 1, 3, 2, 4)
    - FIFO해설

2. LRU(Least Recently Used)

  • 최근에 가장 오랫동안 사용하지 않은 페이지를 교체
  • 각 페이지마다 계수기 counter 나 스택 stack 을 두어 현 시점에서 가장 오랫동안 사용하지 않은 페이지를 교체
  • ex) 2개의 프레임을 수용할 수 있는 주기억장치에서 LRU 알고리즘을 사용할 경우 페이지 결함의 발생횟수는?
    페이지 참조 순서 : 1, 2, 1, 3, 2, 4
    답 : 5
    해설
    - 2개의 프레임에 1, 2 가 들어가면서 결함 발생 합 2회 (1, 2)
    - 1 그대로 (1, 2, 1)
    - 1은 최근에 들어왔으므로 3은 두 번째 프레임에 들어가면서 결함 발생 3회 (1, 2, 1, 3)
    - 3은 최근에 들어왔으므로 2는 첫 번째 프레임에 들어가면서 결함 발생 4회 (1, 2, 1, 3, 2)
    - 2는 최근에 들어왔으므로 4는 두 번 째 프레임에 들어가면서 결함 발생 5회 (1, 2, 1, 3, 2, 4)
    - LRU해설

3. NUR(Not Used Recently)

  • 최근에 사용하지 않은 페이지를 교체하는 기법
  • 최근에 사용 여부를 확인하기 위해서 각 페이지마다 참조 비트와 변형 비트 2개의 비트를 사용
    • Reference Bit : 페이지 호출될 때1, 호출되지 않을 때 0 지정
    • Modified Bit : 페이지 내용 변경될 때1, 변경되지 않을 때 0 지정
  • 참조비트와 변경비트의 값에 따른 교체될 페이지 순서가 결정됨
  • ![NUR]](/images/정보처리기사/0504_11.png)

4. OPT; OPTimal Replacement, 최적 교체

  • 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법
  • 페이지 부재 횟수가 가장 적게 발생하는 가장 효율적인 알고리즘

5. LFU; Least Frequently Used

  • 사용 빈도가 가장 적은 페이지를 교체하는 기법
  • 활발하게 사용되는 페이지는 사용 횟수가 많아 교체하지 않고 사용

6. SCR; Second Chance Replacement

  • 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하면 FIFO 기법의 단점을 보완하는 기법

가상기억장치의 기타 관리

1. Locality 지역성, 구역성

  • 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부페이지만 집중적으로 참조하는 성질
  • Temporal Locality 시간 구역성
    • 프로세스가 실행되면서 하나의 페이지를 일정 시간 동안 집중적으로 액세스하는 현상
    • 기억장소
      • Loop
      • Stack
      • Sub
      • Routine
      • Counting
  • Spatial Locality 공간 구역성
    • 프로세스 실행시 일정 위치의 페이지를 집중적으로 액세스하는 현상
    • 차몾한 페이지의 근처에 있는 페이지를 참조할 가능성이 높음
    • 기억장소
      • Array
      • Traversal
      • 순차적 코드의 실행

2. Working Set 워킹 셋

  • 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
  • 자주 참조되는 워킹 셋을 주기억장치에 상주시킴으로써 페이지 부재 및 페이지 교체 현상이 줄어듦
  • 시간이 지남에 따라 자주 참조하는 페이지의 집합이 변화하기 때문에 워킹 셋도 시간에 따라 변경됨

3. Thrashing 스래싱

  • 프로세스의 처리 시간 보다 페이지 교체에 소요되는 시간이 더 많아 지는 현상
  • 프로세스들 간의 메모리 경쟁으로 지나치게 페이지 폴트가 발생하여 전체 시스템의 성능이 저하되는 현상
  • 다중 프로그래밍 시스템이나 가상기억장치를 사용하는 시스템에서 하나의 프로세스 수행 과정 중 자주 페이지 부재가 발생함으로써 나타나는 현상으로, 전체 시스템의 성능이 저하됨
  • 스래싱 현상 방지 방법
    • 다중 프로그래밍 정도를 적정 수준으로 유지
    • 페이지 부재 빈도를 조절하여 사용
    • 워킹 셋을 유지
    • 부족한 자원을 증설하고, 일부 프로세스를 중단시킴
    • CPU 성능에 대한 자료의 지속적인 관리 및 분석으로 임계치를 예상하여 운영
API API오용 Anaconda Beacon Bluetooth CRUD분석 Camera ChatBot DB관련신기술 DB관리기능 DB서버 DB표준화 ER다이어그램 ER모델 ETL Flask HW관련신기술 IDE도구 IP IoT Machine_Translation NLP배경 ORM프레임워크 Package Recurrent Neural Network SDLC SW개발방법론 SW개발방법론선정 SW개발보안정책 SW개발표준 SW관련신기술 Sequence_Tagging ShellScript TCP_UDP Vector WordCloud c 자료형 class embedding konlpy python python 자료형 가설검증 개발환경구축 객체지향프로그래밍언어 관계데이터베이스모델 관계데이터언어 국제표준제품품질특성 네트워크7계층 네트워크관련신기술 네트워크장비 네트워크침해공격용어 논리데이터모델개요 논리데이터모델품질검증 논리적데이터모델링 논문 단위모듈구현 단위모듈테스트 데이터검증 데이터모델개념 데이터베이스무결성 데이터베이스백업 데이터베이스암호화 데이터베이스용량설계 데이터베이스이중화구성 데이터베이스정규화 데이터분석 데이터분석 - 순열 - 조합 데이터분석 - 정규분포 데이터분석 - 통계기초 데이터사이언스개념 데이터입출력 데이터전환수행계획 데이터정제 데이터조작프로시저작성 데이터조작프로시저최적화 데이터조작프로시저테스트 데이터지역화 데이터타입 데이터표준확인 데이터품질분석 라이브러리 로그분석 메모리관리 모델화 몬테카를로 물리데이터모델설계 물리데이터모델품질기준 물리데이터저장소구성 물리요소조사분석 반정규화 배치프로그램 변수 보안기능 보안솔루션 보안아키텍처 보안취약성식별 분산데이터베이스 분산분석 비용산정모델 빌드자동화도구 사용자정의함수 상관분석 서버개발프레임워크 서버인증 서버장비운영 서버접근통제 서비스공격유형 선언형언어 세션통제 소스코드인스펙션 소프트스킬 소프트웨어개발프레임워크 소프트웨어버전관리도구 소프트웨어연계테스트 슈퍼디엠지 스크립트언어 시스템카탈로그와뷰 암호알고리즘 애플리케이션모니터링도구 애플리케이션배포도구 애플리케이션성능개선 애플리케이션테스트결과분석 애플리케이션테스트시나리오작성 애플리케이션테스트케이스작성 애플리케이션통합테스트수행 애플리케이션패키징 연산자 예외처리 오답노트 오류데이터측정 오류처리 오류처리확인및보고서작성 요구공학방법론 운영체제 웹서버 이벤트 인터넷구성의개념 인터페이스구현검증 인터페이스기능확인 인터페이스보안 입력데이터검증및표현 자료구조 자연어처리 재사용 절차적프로그래밍언어 정보보안침해공격용어 정보처리기사 제품소프트웨어매뉴얼작성 집계성DCL작성 체크리스트 초기데이터구축 취약점분석 칼럼속성 캡슐화 코드오류 클러스터링 키종류 테일러링기준 트랜잭션인터페이스 트리거 파일처리기술 파티셔닝 패키지 포트포워딩 프로세스스케줄링 프로토타입 한국어임베딩 핵심정리 현업도구 형상관리도구 환경변수 회귀분석
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×