• 운영체제
    • 운영체제(OS: Operating System)란?
      • 사용자와 컴퓨터 시스템 간의 인터페이스 기능을 제공하는 시스템 소프트웨어
      • 컴퓨터에 관련된 모든 자원(resource)들을 효율적으로 관리하고, 사용자가 컴퓨터를 효과적으로 사용할 수 있는 환경을 제공
    • 운영체제의 목적
      • 처리능력 (Throughput): 단위 시간 내에 처리하는 일의 양
      • 반환시간 (Turn around time): 작업이 제출된 시각으로부터 결과를 얻을 때까지 소요된 시간
      • 사용 가능도 (Availability): 시스템을 사용하고자 할 때 즉시 사용 가능한가를 나타내는 능력
      • 신뢰도 (Reliability): 시스템이 주어진 문제를 정확하게 해결하는가를 나타내는 능력
    • 운영체제의 역할
      • 사용자 (user)와의 인터페이스 (interface)
      • 자원 스케줄링 (scheduling)
      • 하드웨어 및 네트워크를 관리 제어
      • 데이터 및 자원을 관리 공유
      • 시스템 오류 (error) 처리
      • 입출력 (I/O) 관리
    • 운영체제 종류
      • UNIX
        • 대부분의 코드가 C언어로 기술된 대화식 시분할 운영체제
        • 높은 이식성과 확장성이 있음
        • 다중 사용자(Multi-User), 다중 작업 (Multi-Tasking)을 지원
        • 커널, 쉘, 유틸리티로 구성
      • Windows
        • 마이크로소프트(Microsoft) 사가 개발한 운영체제
        • 선점형 멀티태스킹, PnP, OLE 등의 특징을 가짐
      • Linux
        • 리누스 토발즈가 UNIX를 기반으로 개발한 운영체제
        • 프로그램 소스 코드가 무료로 공개
  • 메모리 관리
    • 메모리 관리 전략
      • 반입 (Fetch) 전략
        • 보조 기억장치에 보관중인 프로그램이나 데이터를 언제 주기억장치에 적재할 것인지를 결정하는 전략
        • 요구 반입: 참조 요구가 있을 때마다 주기억장치로 옮기는 방법
        • 예상 반입: 참조될 프로그램이나 데이터를 미리 예상하여 적재하는 방버
      • 배치 (Placement) 전략
        • 새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 배치할지를 결정하는 전략
        • 최초 적합 (First fit): 파일이 메모리에 상주하기에 최초로 맞는 곳을 찾아 배치되는 전략
        • 최적 적합 (Best fit): 파일이 메모리에 상주할 수 잇는 공간들 중에 가장 잘 맞는 곳에 배치되는 전략
        • 최악 적합 (Worst fit): 파일이 메모리에 상주할 수 있는 공간들 중에 파일을 배치하고도 남는 공간이 가장 큰 공간에 배치되는 전략
      • 교체 (Replacement) 전략
        • OPT (OPTimal replacement, 최적 교체): 앞으로 사용하지 않을 페이지를 교체하는 방법
        • FIFO (First In First Out): 가장 오래 메모리에 상주했던 페이지를 교체하는 알고리즘
        • LRU (Least Recently Used): 최근에 가장 적게 사용된 페이지가 교체되는 알고리즘
        • LFU (Least Frequency Used): 지금까지 참조된 횟수가 가장 적은 페이지를 교체하는 알고리즘
        • NUR (Not Used Recently): 참조 비트와 변경 비트를 이용하여 가장 최근에 참조되지 않은 페이지를 교체하는 알고리즘
        • SCR (Second Chance Replacement) : 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 것
  • 메모리 할당 기법
    • 메모리 할당 기법
      • 단일 프로그래밍
        • 운영체제와 사용자 영역의 보호는 경계 레지스터 (bound register)를 이용
        • 프로그램의 크기가 주기억장치보다 큰 경우 오버레이(overlay) 기법을 이용하여 처리가 가능
      • 다중 프로그래밍
        • 고정 분할 할당
          • 주기억장치를 고정된 크기들로 분할하여 실행 중인 여러 프로세스에게 할당
          • 내부 단편화에 의해 기억장치의 낭비가 큼
        • 가변 분할 할당
          • 프로그램 실행 시 필요한 만큼의 기억장치를 할당받는 방식
          • 기억 장치의 효율성은 있지만 외부 단편화 발생
    • 가상 기억장치 (Virtual Storage)
      • 보조 기억장치의 일부를 마치 주기억장치처럼 사용하는 방식
      • 주기억장치의 용량보다 큰 프로그램을 실행할 수 있음
      • 주기억장치와 가상 기억장치의 주소를 독립시키는 것으로 가상 주소를 실 주소로 변환하는 매핑(mapping) 방법이 필요함
      • 페이징(Paging) 기법: 가상 기억장치에 보관된 프로그램과 주기억장치의 영역을 동일한 크기로 나누는 방식
      • 세그먼테이션(Segmentation) 기법: 프로그램을 여러 개의 다른 크기로 분할하고 주기억장치에서는 분할된 크기에 맞게 동적으로 분할하여 적재하는 방법
  • 프로세스 스케줄링
    • 프로세스(Process)란?
      • 다중 프로그래밍에서 메모리에 상주하고 있는 많은 프로그램들 중에서 현재 CPU에 의해 실행 중인 프로그램
      • CPU에 의해 실행 중인 프로그램
      • 비동기적인 행위를 일으키는 주체
      • 프로시저가 활동 중인 것
      • 지정된 결과를 얻기 위한 일련의 동작
      • 실행 중이거나 실행이 가능한 PCB (Process Control Block)를 가진 프로그램
    • 프로세스 스케줄링
      • 다중 프로그래밍 시스템에서 두 개 이상의 프로세스가 동시에 실행 가능한 상태가 되었을 때 먼저 실행한 프로세스를 결정하는 것
      • 비선점형(non preemptive) 형
        • 한 프로세스가 CPU를 할당 받으면 다른 프로세스는 이전 프로세스가 CPU를 반환할 때까지 CPU를 점유하지 못하는 방식으로 일괄처리 시스템에서 사용
        • 모든 작업이 공정하게 처리되지만 짧은 작업은 긴 작업이 끝나길 기다릴 수 밖에 없음
        • 적용 알고리즘: FIFO, SJF, 우선순위, HRN, 기한부 스케줄링
      • 선점형(preemptive) 형
        • 한 프로세스가 CPU를 차지하고 있을 때 우선순위가 높은 다른 프로세스가 현재 실행 중인 프로세스를 중지시키고 자신이 CPU를 점유하는 방식으로 시분할 시스템에서 사용
        • 대화형 작업에 적합
        • 문맥 교환이 많아 오버헤드가 많음
        • 적용 알고리즘: RR, SRT, MLQ, MFQ
  • 교착상태
    • 교착상태란?
      • 둘 이상의 서로 다른 프로세스가 자신이 요구한 자원을 할당 받아 점유하고 있으면서, 상호간에 상대방 프로세스에 할당되어 있는 자원을 요구하는 상태
    • 교착상태의 필요조건
      • 상호배제 (mutal exclusion): 한 번에 한 개의 프로세스만이 공유 자원을 사용할 수 있어야 함
      • 점유와 대기 (hold and wait): 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 함
      • 비선점 (non-preemption) 조건: 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 함
      • 환형 대기 (circular wait) 조건: 공유 자원과 공유 자원을 위해 대기하는 프로세스들이 원형으로 구성되어 있어 자신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야 함
    • 교착상태의 예방 (Deadlock Prevention)
      • 예방은 교착상태 발생 필요조건의 4가지 중 하나를 부정함으로써 수행
      • 상호배제 조건의 부정, 점유와 대기 조건의 부정, 비선점 조건의 부정, 환형대기 조건의 부정
    • 교착상태의 회피 (Deadlock Avoidance)
      • 발생 가능성을 인정하고 교착상태가 발생하려고 할 때, 이를 적절히 피해가는 방법
      • 은행원 (Banker) 알고리즘: 자원의 할당 결과, 시스템이 안전 상태가 될 때에만 해당 자원을 할당하도록 함으로써 시스템이 교착상태에 빠지는 것을 피하게 되는 것
    • 교착상태의 탐지 (Deadlock Detection)
      • 시스템의 운영 중에 교착상태에 관련된 프로세스와 자원을 발견하여 교착상태를 제거하는 방법
      • 교착상태 탐지 알고리즘, 자원 할당 그래프의 소거 이용
    • 교착상태의 회복 (Recovery from Deadlock)
      • 교착상태를 해결하기 위해서는 단순하게 한 개 이상의 프로세스를 중지시키거나 교착상태의 프로세스로부터 자원을 선점
  • 인터넷 구성의 개념
    • 인터넷 (Internet)이란?
      • TCP/IP 프로토콜을 기반으로 컴퓨터와 네트워크가 연결된 광범위한 컴퓨터 통신망
      • 미국방성의 ARPANET에서 시작
      • 유닉스 운영체제를 기반으로 함
      • 모든 컴퓨터는 고유한 IP를 갖음
    • IP 주소 (Internet Protocol Address)
      • 인터넷에 연결된 모든 컴퓨터를 구분할 수 있는 고유한 주소
      • 숫자로 8bit씩 4부분, 전체 32bit로 구성
      • 네트워크 부분의 길이에 따라 A~E 클래스의 5단계로 구성
    • 서브네팅 (Subnetting)
      • 할당된 네트워크 주소를 다시 여러 개의 작은 네트워크로 나눠 사용하는 것
    • IPv6
      • 현재 사용하고 있는 IP 주소 체계인 IPv4의 주소 부족문제를 해결하기 위해 개발
      • 16bit씩 8부분, 전체 128bit로 구성
      • IPv4에 비해 자료 전송 속도가 빠르며, 보안성과 멀티미디어 기능 향상
    • 도메인 네임 (Domain Name)
      • 숫자로 된 IP 주소를 사람이 이해하기 쉬운 문자 형태로 표현한 것
      • 문자로 된 도메인 네임을 컴퓨터가 이해할 수 있는 IP 주소로 변호나하는 역할을 하는 시스템을 DNS (Domain Name System)라고 함
  • OSI 7계층
    • OSI 7계층 (Open System Interconnection 7 Layer)란?
      • 국제 표준화 기구인 ISO (International Stardardization Organization) 에서 개발한 네트워크 계층 표현 모델
      • 다른 시스템 간의 원활한 통신을 위해 제안됨
    • 물리 계층 (Physical Layer)
      • 두 장치 간의 데이터 전송을 위해 실제 접속과 절단 등 기계적, 전기적, 절차적 특성에 대한 규칙을 정의 
      • 관련 장비: 허브, 리피터
    • 데이터 링크 계층 (Data Link Layer)
      • 두 개의 인접한 개발 시스템 간의 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 함
      • 흐름 제어, 프레임 동기화, 오류 제어, 순서 제어의 기능을 제공
      • 관련 장비: 브리지, 스위치
    • 네트워크 계층 (Network Layer)
      • 네트워크 연결을 설정, 유지, 해제하는 기능
      • 최적의 경로 선택, 데이터 교환 및 중계, 트래픽 제어, 패킷 정보 전송 수행
      • 프로토콜: X.25, IP
      • 관련 장비: 라우터
    • 전송 계층 (Transport Layer)
      • 시스템 종단 간에 투명한 데이터 전송을 양방향으로 행하는 계층이며 신뢰성 있는 데이터 전송을 보장
      • 송신측은 데이터를 패킷으로 분할하고 수신측은 다시 결함하여 순서대로 재조립
      • 오류 제어와 흐름 제어를 수행
      • 프로토콜: TCP, UDP
    • 세션 계층 (Session Layer)
      • 송수신 측 간의 관련성을 유지하고 대화 제어를 담당하는 계층
    • 표현 계층 (Presentation Layer)
      • 데이터 표현 차이를 해결하기 위해 서로 다른 형식을 변환해 주거나 공통 형식을 제공하는 계층
    • 응용 계층 (Application Layer)
      • 파일 전송, DB, 원격 접속, 메일 전송 등 응용 서비스를 네트워크에 접속시키는 역할을 담당
      • 프로토콜: HTTP, SMTP, SNMP, FTP, Telnet 등
  • 네트워크 프로토콜
    • 프로토콜이란?
      • 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고받는 양식과 규칙의 체계
      • 상호 간의 접속이나 전달 방식, 통신 방식, 자료의 형식, 오류 검출 방식, 코드 변환 방식, 전송 속도 등에 대하여 정하는 것
    • TCP/IP (Transmssion Control Protocol / Internet Protocol)
      • TCP
        • OSI 7 계층의 전송 계층에 해당
        • 신뢰성 있는 연결형 서비스 제공
        • 패킷의 다중화, 순서 제어, 오류 제어, 흐름 제어 기능 제공
        • 스트림 전송 기능 제공
      • IP
        • OSI 7 계층의 네트워크 계층에 해당
        • 신뢰성이 보장되지 않는 비연결형 서비스 제공
        • 패킷의 분해 / 조립, 주소 지정, 경로 선택 기능 제공
    • UDP (User Datagram Protocol)
      • 비연결형 프로토콜
      • 전송 데이터에 대한 전송 확인이나 신뢰성 보장이 없음
      • 빠른 전송이 가능하며, 비교적 통신 부하가 적

WRITTEN BY
ppdha82

,