[정보처리기사] 11장 응용 SW 기초 기술 활용

최윤성·2023년 4월 22일
0

정보처리기사

목록 보기
12/12

운영체제(Opertaing System)

  • 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임이다.
  • 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로 동작하는 시스템 소프트웨어의 일종이다.
  • 운영체제의 종류
    • Windows: 1990년대 마이크로소프트 사가 개발한 운영체제
    • UNIX: 1960년대 AT&T 벨 연구소, MIT, General Electric이 공동 개발한 운영체제
    • LINUX: 1991년 리누스 토발즈가 UNIX를 기반으로 개발한 운영체제
    • MaxOS: 1980년대 애플 사가 UNIX를 기반으로 개발한 운영체제
    • MS-DOS
    • Android: 구글 사에서 개발한 리눅스 커널 기반의 개방형 모바일 운영체제
    • iOS: 애플 사에서 개발한 유닉스 기반의 모바일 운영체제

운영체제의 기능

  • 프로세서, 기억장치, 입출력장치, 파일 및 정보 등의 자원을 관리한다.
  • 자원을 효율적으로 관리하기 위해 자원의 스케줄링 기능을 제공한다.
  • 사용자와 시스템 간의 편리한 인터페이스를 제공한다.
  • 시스템의 각종 하드웨어와 네트워크를 관리/제어한다.
  • 데이터를 관리하고, 데이터 및 자원의 공유 기능을 제공한다.

기억장치 관리

  • 기억장치의 관리 전략은 보조기억장치의 프로그램이나 데이터를 주기억장치에 적재시키는 시기, 적재 위치 등을 지정하여 한정된 주기억장치의 공간을 효율적으로 사용하기 위한 것이다.
  • 기억장치 관리 전략의 종류
    • 반입(Fetch) 전략: 보조기억장치에 보관중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지를 결정하는 전략
    • 배치(Placement) 전략: 새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 위치 시킬 것인지를 결정하는 전략
    • 교체(Replacement) 전략: 주기억장치의 모든 영역이 이미 사용중인 상태에서 새로운 프로그램이나 데이터를 주기억장치에 배치하려고 할 때, 이미 사용되고 있는 영역 중에서 어느 영역을 교체하여 사용할 것인지를 결정하는 전략

주기억장치 할당 기법

  • 프로그램이나 데이터를 실행시키기 위해 주기억장치에 어떻게 할당할 것인지에 대한 내용이다.
  • 주기억장치 할당 기법의 분류
    • 연속 할당 기법: 프로그램을 주기억장치에 연속으로 할당하는 기법
      • 단일 분할 할당 기법: 주기억장치를 운영체제 영역과 사용자 영역으로 나누어 한순간에는 오직 한 명의 사용자만이 주기억장치의 사용자 영역을 사용하는 기법
      • 다중 분할 할당 기법
        • 고정 분할 할당 기법: 프로그램을 할당하기 전에 운영체제가 주기억장치의 사용자 영역을 여러 개의 고정된 크기로 분할하고 준비상태 큐에서 준비중인 프로그램을 각 영역에 할당하여 수행하는 기법
        • 가변 분할 할당 기법: 주기억장치를 미리 분할해 놓지 않고 프로그램을 주기억장치에 적재하면서 필요한 만큼의 크기로 영역을 분할하는 기법
    • 분산 할당 기법: 프로그램을 특정 단위의 조각으로 나누어 주기억장치 내에 분산하여 할당하는 기법
      • 페이징 기법: 가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 나눠진 프로그램을 동일하게 나눠진 주기억장치의 영역에 적재시켜 실행하는 기법
      • 세그먼테이션 기법: 가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행시키는 기법

페이지 교체 알고리즘

  • 페이지 부재가 발생하면 가상기억장치에서 필요한 페이지를 찾아 주기억장치에 적재해야 하는데, 이때 주기억장치의 모든 페이지 프레임이 사용중이면 어떤 페이지 프레임을 선택하여 교체할 것인지를 결정하는 기법이 페이지 기법 교체 알고리즘이다.
  • 페이지 교체 알고리즘 종류
    • OPT(OPTimal replacement, 최적 교체): 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법
    • FIFO(First In First Out): 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체하는 기법
    • LRU(Least Recently User): 최근에 가장 오랫동안 사용하지 않은 페이지를 교체하는 기법
    • LFU(Least Frequently Used): 사용 빈도가 가장 적은 페이지를 교체하는 기법
    • NUR(Not User Recently): LRU와 비슷한 알고리즘으로, 최근에 사용하지 않은 페이지를 교체하는 기법
    • SCR(Second Chance Replacement): 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 기법

프로세스

  • 일반적으로 프로세서에 의해 처리되는 사용자 프로그램, 시스템 프로그램, 즉 실행중인 프로그램을 의미한다.

PCB(Process Control Block)

  • 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳이다.
  • 각 프로세스가 생성될 때마다 고유의 PCB가 생성되고, 프로세스가 완료되면 PCB는 제거된다.

프로세스 상태 전이

  • 프로세스가 시스템 내에 존재하는 동안 프로세스의 상태가 변하는 것을 의미한다.
  • 제출(Submit): 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태
  • 접수(Hold): 제출된 작업이 스풀 공간인 디스크의 할당 위치에 저장된 상태
  • 준비(Ready): 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태
  • 실행(Run): 준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행되는 상태
  • 대기(Wait, Block): 프로세스에 입출력 처리가 필요하면 현재 실행 중인 프로세스가 중단되고, 입출력 처리가 완료될 때까지 대기하고 있는 상태
  • 종료(Terminated): 프로세스의 실행이 끝나고 프로세스 할당이 해제된 상태

프로세스 상태 전이 관련 용어

  • Dispatch: 준비 상태에서 대기하고 있는 프로세스 중 하나가 프로세서를 할당받아 실행 상태로 전이되는 과정 (Ready -> Run)
  • Wake Up: 입출력 작업이 완료되어 프로세스가 대기 상태에서 준비 상태로 전이되는 과정 (Wait -> Ready)
  • Spooling: 입출력장치의 공유 및 상대적으로 느린 입출력장치의 처리속도를 보완하고 다중 프로그래밍 시스템의 성능을 향상시키기 위해 입출력할 데이터를 직접 입출력장치에 보내지 않고 나중에 한꺼번에 입출력하기 위해 디스크에 저장하는 과정 (Hold -> 디스크)
  • Traffic Controller: 프로세스의 상태에 대한 조사와 통보 담당

스레드(Thread)

  • 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위 또는 프로세스 내에서의 작업 단위로 사용된다.
  • 하나의 프로세스에 하나의 스레드가 존재하는 경우에는 단일 스레드, 하나 이상의 스레드가 존재하는 경우에는 다중 스레드라고 한다.
  • 스레드 기반 시스템에서 스레드는 독립적인 스케줄링의 최소 단위로서 프로세스의 역할을 담당한다.

스케줄링(Scheduling)

  • 프로세스가 생성되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업을 의미한다.

비선점(Non-Preemptive) 스케줄링

  • 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법이다.
  • 프로세스가 CPU를 할당받으면 해당 프로세스가 완료될 때까지 CPU를 사용한다.

선점(Preemptive) 스케줄링

  • 하나의 프로세스가 CPU를 할당받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법이다.
  • 우선순위가 높은 프로세스를 빠르게 처리할 수 있다.
  • 빠른 응답 시간을 요구하는 대화식 시분할 시스템에 사용된다.
  • 많은 오버헤드를 초래한다.

주요 스케줄링 알고리즘

  • FCFS(First Come First Service) = FIFO: 준비상태 큐에 도착한 순서에 따라 차례로 CPU를 할당하는 기법
  • SJF(Shortest Job First): 준비상태 큐에서 기다리고 있는 프로세스들 중에서 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법
  • HRN(Highest Response-ratio Next): 대기 시간과 서비스(실행) 시간을 이용하는 기법으로, 우선순위 = (대기 시간 + 서비스 시간) / 서비스 시간

인터넷(Internet)

  • TCP/IP 프로토콜을 기반으로 하여 전 세계 수많은 컴퓨터와 네트워크들이 연결된 광범위한 컴퓨터 통신망이다.
  • 인터넷에 연결된 모든 컴퓨터는 고유한 IP 주소를 갖는다.

IP 주소(Internet Protocol Address)

  • 인터넷에 연결된 모든 컴퓨터 자원을 구분하기 위한 고유한 주소이다.
  • 8비트씩 4부분, 총 32비트로 구성되어 있다.

서브네팅(Subnetting)

  • 할당된 네트워크 주소를 다시 여러 개의 작은 네트워크로 나누어 사용하는 것을 말한다.
  • 4바이트의 IP 주소 중 네트워크 주소와 호스트 주소를 구분하기 위한 비트를 서브넷 마스크라고 하며, 이를 변경하여 네트워크 주소를 여러 개로 분할하여 사용한다.

IPv6(Internet Protocol version 6)

  • 현재 사용하고 있는 IP 주소 체계인 IPv4의 주소 부족 문제를 해결하기 위해 개발되었다.
  • 16비트씩 8부분, 총 128비트로 구성되어 있다.
  • 각 부분을 16진수로 표현하고, 콜론(:)으로 구분한다.
  • 128비트의 긴 주소를 사용하여 주소 부족 문제를 해결할 수 있다.
  • IPv4에 비해 자료 전송 속도가 빠르다.
  • 인증성, 기밀성, 데이터의 무결성의 자원으로 보안 문제를 해결할 수 있다.
  • 주소의 확장성, 융통성, 연동성이 뛰어나다.
  • 실시간 흐름 제어로 향상된 멀티미디어 기능을 지원한다.
  • 패킷 크기를 확장할 수 있으므로 패킷 크기에 제한이 없다.
  • 기본 헤더 뒤에 확장 헤더를 더함으로써 더욱 다양한 정보의 저장이 가능해져 네트워크 기능 확장이 용이하다.
  • IPv4와 호환성이 뛰어나다.

IPv6 주소 체계

  • 유니캐스트(Unicast): 단일 송신자와 단일 수신자 간의 통신
  • 멀티캐스트(Multicast): 단일 송신자와 다중 수신자 간의 통신
  • 애니캐스트(Anycast): 단일 송신자와 가장 가까이 있는 단일 수신자 간의 통신

도메인 네임(Domain Name)

  • 숫자로 된 IP 주소를 사람이 이해하기 쉬운 문자 형태로 표현한 것이다.
  • 문자로 된 도메인 네임을 컴퓨터가 이해할 수 있는 IP 주소로 변환하는 역할을 하는 시스템을 DNS(Domain Name System)라고 하며 이런 역할을 하는 서버를 DNS 서버라고 한다.

OSI 참조 모델

  • 다른 시스템 간의 원활한 통신을 위해 ISO(국제표준화기구)에서 제안한 통신 규약이다.

물리 계층(Physical Layer)

  • 전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의한다.
  • 물리적 전송 매체와 전송 신호 방식을 정의한다.
  • 두 개의 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 시스템 간 연결 설정과 유지 및 종료를 담당한다.
  • 송신 측과 수신 측의 속도 차이 해결을 위한 흐름 제어 기능을 한다.
  • 주요 프로토콜
    • Ethernet(IEEE 802.3): CSMA/CD 방식의 LAN

네트워크 계층(Network Layer)

  • 개방 시스템들 간의 네트워크 연결을 관리하는 기능과 데이터의 교환 및 중계 기능을 한다.
  • 네트워크 연결을 설정, 유지, 해제하는 기능을 한다.
  • 주요 프로토콜
    • IP(Internet Protocol)
      • 전송할 데이터에 주소를 지정하고, 경로를 설정하는 기능을 함
      • 비연결형인 데이터그래 방식을 사용하는 것으로 신뢰성이 보장되지 않음
    • ICMP(Internet Control Message Protocol): IP와 조합하여 통신중에 발생하는 오류의 처리와 전송 경로 변경 등을 위한 제어 메시지를 관리하는 역할을 함
    • IGMP(Internet Group Management Protocol): 멀티캐스트를 지원하는 호스트나 라우터 사이에서 멀티캐스트 그룹 유지를 위해 사용됨
    • ARP(Address Resolution Protocol): 호스트의 IP 주소를 호스트와 연결된 네트워크 접속 장치의 물리적 주소(MAC Address)로 바꿈
    • RARP(Reverse Address Resolution Protocol): ARP와 반대로 물리적 주소를 IP 주소로 변환하는 기능을 함

전송 계층(Transport Layer)

  • 논리적 안정과 균일한 데이터 전송 서비스를 제공함으로써 종단 시스템 간에 투명한 데이터 전송을 가능하게 한다.
  • 주소 설정, 다중화, 오류 제어, 흐름 제어를 수행한다.
  • 주요 프로토콜
    • TCP(Transmission Control Protocol)
      • 양방향 연결형 서비스를 제공함
      • 가상 회선 연결 형태의 서비스를 제공함
      • 스트림 위주의 전달(패킷 단위)을 함
      • 신뢰성 있는 경로를 확립하고 메시지 전송을 감독함
      • 순서 제어, 오류 제어, 흐름 제어 기능을 함
      • 패킷의 분실, 손상, 지연이나 순서가 틀린 것 등이 발생할 때 투명성이 보장되는 통신을 제공함
    • UDP(User Datagram Protocol)
      • 데이터 전송 전에 연결을 설정하지 않는 비연결형 서비스를 제공함
      • TCP에 비해 상대적으로 단순한 헤더 구조를 가지므로, 오버헤드가 적고, 흐름 제어나 순서 제어가 없어 전송 속도가 빠름
      • 고속의 안정성 있는 전송 매체를 사용하여 빠른 속도를 필요로 하는 경우, 동시에 여러 사용자에게 데이터를 전달할 경우, 정기적으로 반복해서 전송할 경우에 사용함
      • 실시간 전송에 유리하며, 신뢰성보다는 속도가 중요시되는 네트워크에서 사용됨

세션 계층(Session Layer)

  • 송수신 측 간의 관련성을 유지하고 대화 제어를 담당한다.
  • 대화 구성 및 동기 제어, 데이터 교환 관리 기능을 한다.

표현 계층(Presentation Layer)

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

응용 계층(Application Layer)

  • 사용자(응용 프로그램)가 OSI 환경에 접근할 수 있도록 서비스를 제공한다.
  • 응용 프로세스 간의 정보 교환, 전자 사서함, 파일 전송 등의 서비스를 제공한다.

네트워크(Network)

  • 두 대 이상의 컴퓨터를 전화선이나 케이블 등으로 연결하여 자원을 공유하는 것을 말한다.
  • 네트워크 설치 구조
    • 성형(Star)
      • 중앙에 중앙 컴퓨터가 있고, 이를 중심으로 단말장치들이 연결되어 중앙 집중식의 네트워크 구성 형태이다.
      • 포인트 투 포인트 방식으로 회선을 연결한다.
      • 단말장치의 추가와 제거가 쉽다.
      • 하나의 단말장치가 고장나더라도 다른 단말장치에는 영향을 주지 않지만, 중앙 컴퓨터가 고장나면 전체 통신망의 기능이 정지된다.
    • 링형(Ring)
      • 컴퓨터와 단말장치들을 서로 이웃하는 것끼리 연결시킨 구성 형태이다.
      • 포인트 투 포인트 방식으로 회선을 연결한다.
      • 단말장치의 추가/제거 및 기밀 보호가 어렵다.
      • 각 단말장치에서 전송 지연이 발생할 수 있다.
      • 데이터는 단방향 또는 양방향으로 전송할 수 있다.
    • 버스형(Bus)
      • 한 개의 통신 회선에 여러 대의 단말장치가 연결되어 있는 형태이다.
      • 단말장치의 추가와 제거가 용이하다.
      • 단말장치가 고장나더라도 통신망 전체에 영향을 주지 않기 때문에 신뢰성을 높일 수 있다.
      • 기밀 보장이 어렵다.
      • 통신 회선의 길이에 제한이 있다.
    • 계층형(Tree)
      • 중앙 컴퓨터와 일정 지역의 단말장치까지는 하나의 통신 회선으로 연결시키고, 이웃하는 단말장치는 일정 지역 내에 설치된 중간 단말장치로부터 다시 연결시키는 형태이다.
      • 분산 처리 시스템을 구성하는 방식이다.
    • 망형(Mesh)
      • 모든 지점의 컴퓨터와 단말장치를 서로 연결한 형태로, 노드의 연결성이 높다.
      • 많은 단말장치로부터 많은 양의 통신을 필요로 하는 경우에 유리하다.
      • 통신 회선의 총 경로가 가장 길다.

0개의 댓글