Skip to content

Latest commit

 

History

History
271 lines (237 loc) · 15.9 KB

11. 응용 SW 기초 기술 활용.md

File metadata and controls

271 lines (237 loc) · 15.9 KB

운영체제 특징

운영체제 종류⭐

운영체제의 개념

사용자가 컴퓨터의 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공해주는 소프트웨어
한정된 시스템 자원을 효과적으로 사용할 수 있도록 관리 및 운영함으로써 사용자에게 편리성을 제공

운영체제의 특징

사용자 편리성 제공 -> 자원을 효과적으로 사용할수있도록 관리
인터페이스 기능을 담당 -> 컴퓨터 시스템과 사용자를 연결
스케줄링 담당 -> 자원의 현재 상태를 파악하고 자원 분배를 위한 스케줄링 담당
자원 관리 -> CPU, 메모리공간, 기억장치, 입출력 등의 자원을 관리함
제어기능 -> 입출력장치와 사용자 프로그램을 제어

커널의 기능
운영체제는 크게 인터페이스 + 커널의 구조이다.
운영체제는 운영체계의 가장 바깥 부분에 위치해 사용자 명령에 대한 처리를 담당
커널은 하드웨어와 관련된 내부적인 역할을 당ㅁ당

운영체제의 종류

윈도우 운영체제

MS-DOS 멀티태스킹 기능과 GUI 환경을 제공하는 마이크로소프트사가 개발한 운영체제

윈도우 운영체제 특징 -> 지선자 오

  1. 그래핑 사용자 인터페이스(GUI)제공
    키보드 없이 마우스로 아이콘이나 메뉴를 선택하여 작업을 수행
  2. 선점형 멀티태스킹 방식 제공
    동시에 여러 개의 프로그램을 실행하면서 운영체제가 각 작업의 CPU이용시간을 제어
  3. 자동감지 기능 제공
    하드웨어를 설치했을 때 필요한 시스템 환경을 운영체제가 자동으로 구성
  4. OLE 사용
    개체를 현재 작성중인 문서에 자유롭게 연결하여 편짐할 수 있게 하는 기능

유닉스 계열 운영체제

교육 및 연구기관에서 사용되는 범용 다중 사용자 방식의 시분할 운영체제
처음부터 다양한 시스템에 서로 이식할 수 있고, 멀티 태스킹과 다중 사용자를 지원

유닉스 게열 운영체제 특징 -> 대다 사이계

  1. 대화식 운영체제 기능 제공
  2. 다중 작업 기능 제공
  3. 다중 사용자 기능 제공
  4. 이식성 제공
  5. 계층적 트리 구조 파일 시스템 제공

운영체제 기본 명령어 활용⭐

운영체제 제어

CLI와 GUI가 있다
CLI = 사용자가 직접 명령어를 입력, 컴퓨터에 명령을 내리는 방식
GUI = 마우스로 화면을 클릭하여 그래픽 위주로 컴퓨터를 제어하는 방식

리눅스/유닉스 운영체제의 파일 접근 권한 관리

읽거나(r), 쓰거나(w), 실행(x)할 수 있는 3가지 모드로 구분한다. 'rwx'모드를 지원한다면 그 파일을 읽고, 쓰고, 실행할 수 있다는 것을 의미한다.

운영체제 핵심 기능 파악⭐

운영체제 핵심 기능

중앙처리장치, 메모리, 스토리지, 주변 기기 등을 적절히 관리한다.
초기에는 메모리 용량에 제한이 많아 소프트웨어 개발 시 메모리 관리가 매우 중요했으나 요즘은 운체에서 자동으로 관리

운영체제의 메모리 관리 기법 -> 반배할교

  1. 반입 기법
    주 기억장치에 적재할 다음 프로세스의 반입 시기를 결정하는 기법
    메모리로 적재 시기를 결정
  2. 배치 기법
    디스크에 있는 프로세스를 주 기억장치 어느 위치에 저장할것인지
    메모리 적재 위치 결정
  3. 할당 기법
    실행해야할 프로세스를 주 기억장치에 어떤 방법으로 할당할 것인지 결정
    메모리 적재 방법 결정
  4. 교체 기법
    재배치 기법으로 프로세스 중 어떤 프로세스를 제거할 것인지 결정
    메모리 교체 대상 결정

메모리 배치 기법 -> 초적악

  1. 최초 적합
    적재될수 있는 가용 공간 중에서 첫번째 분할에 할당하는 방식
  2. 최적 적합
    가장 크기가 비슷한 공간을 선택하여 프로세스를 적재
  3. 최악 적합
    가용 공간들 중 가장 큰 공간에 할당

프로세스 관리

하나의 프로세스는 여러 가지 이벤트에 의해 일련의 서로 구분되는 상태 변화를 겪는다.

프로세스 상태 -> 생준 실대ㅗ안

  1. 생성 상태
    프로세스가 생성된 상태
  2. 준비 상태
    CPU를 할당받을 수 있는 상태
  3. 실행 상태
    프로세스가 CPU를 할당받아 동작중인 상태
  4. 대기 상태
    CPU를 양도하고 입출력 ㅈ처리가 완료까지 대기 리스트에서 기다리는 상태
  5. 완료 상태
    프로세스가 CPU를 할당받아 주어진 시간 내에 완전히 수행을 종료한 상태

프로세스 상태 전이 -> 디타블웨

하나의 작업이 컴퓨터 시스템에 입력되어 완료되기 까지 프로세스의 상태가 준비, 실행 및 대기 상태로 변하는 활동 디스패치 = 준비상태에 있는 여러 프로세스 중 실행될 프로세스를 선정하여 CPU를 할당
타이머 런 아웃 = CPU를 할당받은 프로세스는 지정된 시간이 초과하면 스케줄러에 의해 저장, CPU반납 후 준비상태
블로 = 실행 상태에 있는 프로세스가 지정된 할당시간을 초과핮기 전에 입출력이나 기타 사건이 발생하면 CPU스스로 반납
웨이크업 = 어느 순간에 입출력이 종료되면 대기 상태의 프로세스에게 입출력 종료 사실을 알려주고 준비상태

프로세스 스케줄링

CPU를 사용하려고 하는 프로세스들 사이의 우선순위를 관리하는 작업 CPU 이용률과 처리율을 증가, 오버헤드, 응답시간, 반환시간, 대기시간을 최소화
응답시간 = 종료시간 - 도착시간
대기시간 = 응답시간 - 서비스시간

프로세스 스케줄링 유형

  1. 선점형 스케줄링
    하나의 프로세스가 CPU를 차지하고 있을때, 우선순위가 높은 프로세스가 현재 프로세스를 중단시키고 CPU 점유
    장점 = 비교적 빠른 응답, 대화식 시분할 시스템에 적합
    단점 = 높은 우선순위 프로세스들이 들어오는 경우 오버헤드 초래
    라운드로빈, SRT, 다단계 큐, 다단계 피드백 큐
  2. 비선점형 스케줄링
    CPU를 할당 받으면 작업 종류후 CPU 반환 시까지 다른 프로세스는 CPU점유가 불가능
    장점 = 응답시간 예상이 용이, 모든 프로세스를 공정하게 처리
    단점 = 짧은 작업을 수행하는 프로세스가 긴 작업 종료시까지 대기
    우선순위, 기한부, FCFS, HRN, SJF

FIFO스케줄링(비선점)

말 그대로 도착한 순서대로 CPU 배정

SJF 스케줄링(비선점)

프로레스가 도착하는 시점에 따라 당시 가장 적은 서비스 시간을 갖는 프로세스가 종료할때까지 자원을 점유

RR 스케줄링(시간할당량 = 2)(선점)

2만큼 큐에 들어온 순서대로 CPU를 점유

SRT 스케줄링(선점)

가장 짧은 시간이 소요되는 프로세스를 먼저 수행, 남은 처리 기간이 더 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제든 바꾼다

가상화

물리적인 리소스들을 사용자에게 하나로 보이게 하거나, 하나의 물리적인 리소스를 여러 개로 보이게 하는 기술
가상화를 통해 서버의 가동률을 20%에서 60~70% 이상으로 올릴 수 있다.

클라우스 컴퓨팅

인터넷을 통해 가상화된 컴퓨터 시스템 리소스를 제공하고, 정보를 자신의 컴퓨터가 아닌 클라우드에 연결된 다른 컴퓨터로 처리하는 기술

  1. 사설 클라우드
    기업 또는 조직 내에 보유하고 있는 컴퓨팅 자원
  2. 공용 클라우드
    제공 업체에서 다중 사용자를 위한 컴퓨팅 자원 서비스를 제공
  3. 하이브리드 클라우드
    기업 또는 조직 내부 지원을 이용한 사설 클라우드와 공용 클라우드 모두 사용

클라우드 컴퓨팅 유형

  1. IaaS 인프라형 서비스
    서버, 스토리지 같은 시스템 자원을 클라우드로 제공
  2. PaaS 플랫폼형 서비스
    인프라를 생성, 관리하는 복잡함 없이 애플리케이션을 개발, 실행할수 있게 하는 플랫폼을 제공
  3. SaaS 소프트웨어형 서비스
    소프트웨어 및 관련 데이터는 중앙에 호스팅, 사용자는 웹 브라우저를 통해 접속

네트워크 기초 활용하기

네트워크 계층 구조 파악⭐

네트워크 개념

원하는 정보를 원하는 수신자 또는 기기에 정확하게 전송하기 위한 기반 인프라
WAN 광대역 네트워크 = 라우팅 알고리즘이 필요, LAN에 비해 전송 거리가 넓음, LAN 대비 에러율이 높음
LAN 근거리 네트워크 = 한 건물 또는 작은 지역을 커버

OSI 7계층

국제 표준화 기구인 ISO에서 개발한 컴퓨터 네트워크 프로토콜 디자인과 통신을 게층으로 나누어 설명한 개방형 시스템
각 계층은 하위계층의 기능을 이용하여 상위 계층에 기능을 제공
계층을 지날때마다 헤더를 추가하는데 해당 계층의 정보가 포함.

응용 계층

사용자와 네트워크 간 응용 서비스 연결, 데이터 생성
응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행하는 역할을 담당
HTTP, FTP, SMTP, POP3, IMAP, Telnet 프로토콜이 있다.

표현 계층

애플리케이션이 다루는 정보를 통신에 알맞은 형태로 만들거나 하위 계층에서 온 데이터를 사용자가 이해할 수 있는 형태로 만드는 역할 담당
JPEG, MPEG 프로토콜이 있다.

세션 계층

응용 프로그램 간의 대화를 유지하기 위한 구조를 제공하고 이를 처리하기 위해 프로세스들의 논리적인 연결을 담당하는 계층이다.
통신 중 연결이 끊어지지않도록 유지해주는 역할 수행
RPC, NetBIOS 프로토콜들이 있다.

전송 계층

L4 스위치
상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해주면서 사용자들에게 신뢰성있는 데이터를 전달하는 계층

TCP = 전송제어 프로토콜로 인터넷 프로토콜 스위트의 핵심 프로토콜이다,
근거리 통신망이나 인트라넷에 연결된 컴퓨터에서 실행되는 프로그램간의 옥텟을 안정적으로, 순서대로, 에러없이 교환할 수 있게 해주는 프로토콜이다.
TCP는 신뢰성보장, 연결지향적 특징, 흐름제어, 혼잡제어 의 특징이 있다

UDP = 비연결성이고 신뢰성이 없으며 순서화되지않은 데이터그램 서비스를 제공하는 프로토콜이다
UDP는 비신뢰성, 순서화되지않은 데이터그램서비스제공, 실시간 응용 및 멀티태스킹 가능, 단순 헤더의 특징이 있다.

네트워크계층

라우터 = LAN과LAN / LAN과WAN을 연결, 게이트웨이 = 프로토콜을 서로 다른 통신망에 접속할 수 있게 해주는 장치,
L3스위치, 유무선 인터넷공유기, 망 스위칭 허브

다양한 길이의 패킷을 네트워크들을 통해 전달하고, 그 과정에서 전송계층이 요구하는 서비스품질을 위한 수단을 제공
IP, ARP, RARP, ICMP, IGMP,라우팅 프로토콜이 있다.

데이터링크 계층

브리지 = 두 개의 LAN을 서로 연결, L2 스위치, NIC, 스위칭 허브
링크의 설정과 유지 및 종료를 담당하며 노드간의 회선제어, 흐름제어, 오류제어 기능을 수행하는 계층이다.
HDLC,PPP,프레임 릴레이,ATM 프로토콜이 있다.

물리 계층

허브 = 여러 대의 컴퓨터 연결, 리피터 = 디지털 신호를 증폭

네트워크 프로토콜 파악⭐

프로토콜

서로 다른 시스템이나 기기들 간의 데이터 교환을 원활히 하기 위한 표준화된 통신규약

프로토콜 3요소 -> 구의타

  1. 구문
    데이터 형식, 코딩, 신호 레벨등의 규정
  2. 의미
    제어 정보로 조정과 에러처리를 위한 규정
  3. 타이밍
    속도 조절과 순서 관리 규정

네트워크 프로토콜

컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계
프로토콜을 사용하면 다른 기기 간 정보의 전달을 표준화 할 수 있다.

IPv4

인터넷에서 사용되는 패킷 교환 네트워크 상에서 데이터를 교환하기 위한 32비트 주소체계를 갖는 네트워크 계층 프로토콜이다
32Bit, 8비트씩 4부분으로 나뉜 10진수
주소할당 = A,B,C,D 등 클래스 단위 비순차적 할당(비효율적)
전송방식 = 유니캐스트, 멀티캐스트, 브로드 캐스트

IPv6

IPv4의 문제점을 해결하기 위해 개발된 128Bit 주소체계를 갖는 프로토콜
16비트씩 8부분으로 나뉜 16진수
네트워크 규모 및 단말기 수에 따른 순차적 할당(효율적)
전송방식 = 유니캐스트, 멀티캐스트, 애니캐스트

IPv4에서 IPv6으로 전환방법

  1. 듀얼스택
    IP계층에 둘다 탑재되어있고 통신상태에 따라 IP스택을 선택하는 방법
  2. 터널링
    IPv6망에서 인접한 IPv4망을 거쳐 다른 IPv6망으로 통신할때 IPv4망에서 터널을 만들고 IPv4에서 사용하는 프로토콜로 캡슐화하여 전송
  3. 주소변환
    IPv4망과 IPv6망 사이에 주소변환기를 사용하여 패킷을 변환

멀티캐스트, 유니캐스트, 브로드캐스트, 애니캐스트

멀티캐스트 프로토콜

인터넷에서 같은 내용의 데이터를 여러 명의 특정한 그룹의 수신자들에게 동시에 전송

유니캐스트 프로토콜

고유 주소로 식별된 하나의 네트워크 목적지에 1:1로 트래픽 또는 메시지를 전송

브로드캐스트 프로토콜

하나의 송신자가 같은 서브 네트워크상의 모든 수신자에게 데이터를 전송

애니캐스트 프로토콜

단일 송신자로부터 데이터그램을 토폴로지상의 잠재적인 수신자 그룹 안에서 가장 가까운 노드로 연결시키는 프로토콜

라우팅 프로토콜(3계층)

데이터 전송을 위해 목적지까지 갈 수있는 여러 경로 중 최적의 경로를 설정해주는 통신규약
RIP, OSPF, BGF, 라우팅 알고리즘

네트워크 전달방식

패킷 스위칭

컴퓨터 네트워크와 통신의 방식중 하나로 작은 블록의 패킷으로 데이터를 전송하며,
데이터를 전송하는 동안만 네트워크 자원을 사용하도록 하는 방식

서킷 스위치

네트워크 리소스를 특정 사용층이 독점하도록 하는 통신 방식이다.


기본 개발환경 구축하기

운영체제 설치 및 운용

운영체제 선택

윈도즈 계열 운영체제 선택

개인용,기업용,워크스테이션용으로 출시

리눅스 계열 운영체제 선택

Redhat 계열과 데비안 계열, 기타 리눅스로 구분된다.

운영체제 운용

외부의 침입이나 바이러스로 인해 시스템이 통제불능의 상태가 되어 불필요한 리소스를 낭비하거나
중요한 데이터의 유실을 방지하기 위해 지속적으로 운용한다.

개발도구 설치 및 운용

프로그래밍 언어

다양한 프로그래밍 언어를 선택하는 것은 시스템 개발 및 운영에 매우 중요하다
언어의 타입, 시스템의 특징, 언어 특징, 지원에 따라 선택한다.

개발 지원 도구

오픈소스기반의 도그를 활용하여 개발 작업의 생산성을 높인다.

응용 시스템 개발 인프라 구축

개발하려는 전체 시스템에 필요로 하는 서비스를 효율적으로 선택하여 개발환경을 구축해야 한다.