11. 응용 SW 기초 기술 활용
운영체제
사용자가 컴퓨터 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공해주는 소프트웨어
특징 : 편리성 제공, 인터페이스 기능, 스케줄링, 자원 관리, 제어 기능
운영체제(OS) = 인터페이스(SHELL) + 커널(KERNEL)
- 커널(KERNEL)
- 하드웨어 관련 내부적인 역할
- 운영체제의 핵심이되는 기능이 모여있는 컴퓨터 프로그램
- 인터페이스(SHELL)
- 운영체계의 가장 바깥부분에서 사용자 명령에 대한 처리
- 종류
리눅스/유닉스 기본 명령어
- chmod
- 특정 파일이나 디렉터리의 모드(권한)를 변경하는 명령어
- 사용자(User), 그룹 (Group), 기타(Other)의 세 가지 범주로 구분
- 접근권한 : 읽기r(read), 쓰기w(write), 실행x(execute)
- r : 4, w: 2, x: 1
- ex) 숫자형 모드는 각 권 한에 대해 4(읽기), 2(쓰기), 1(실행)의 값을 할당하여 권한을 합산한 값으로 표현됩니다. 예를 들 어, 「WX 권한은 4+2+1=7이 됩니다.
메모리 관리 기법
- 반입 기법 : 메모리로 적재 시기 결정
- 배치 기법 : 메모리로 적재 위치 결정
- 최초 적합(First-fit) : 가용 공간 중 첫 번째 분할에 할당
- 최적 적합(Best-fit) : 가장 크기가 비슷한 공간에 할당
- 최악 적합(Worst-fit) : 가장 큰 공간에 할당
- 할당 기법 : 메모리로 적재 방법 결정
- 페이징 기법(Paging) : 프로세스를 일정하게 분할
- 세그먼테이션 기번(Segmention) : 프로세스를 가변적인 크기의 블록으로 나눠 메모리 할당
- 교체 기법 : 메모리 교체 대상 결정
- FIFO(First In First Out) : 선입선출
- LRU(Least Recently Used) : 가장 오랫동안 사용되지 않은 페이지 선택하여 교체
- LFU(Least Frequently Used) : 사용 횟수가 가장 적은 페이지 선택하여 교체
- OPT(OPTimal Replacement) : 앞으로 가장 오랫동안 사용하지 않을 페이지 교체
프로세스 스케줄링
선점형 : 하나의 프로세스가 CPU를 차지하고 있을 때, 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유하는 스케줄링 방식
- 라운드 로빈(Round Robin)
- 프로세스는 같은 크기의 CPU를 할당, 할당된 시간 내에 처리 완료를 못하면 준비 큐 리스트의 가장 뒤로 보내지고, CPU는 대기중인 다음 프로세스로 넘어가는 스케줄링 기법
- SRT(Shortest Remaining Time First)
- 가장 짧은 시간이 소요되는 프로세스를 먼저 수행하고, 남은 처리시간이 더 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제라도 프로세스가 선점되는 스케줄링 기법으로 비선점방식에서 선점 방식을 도입한 기법
- 다단계 큐(Multi Level Queue)
- 여러 개의 큐를 이용하여 상위단계 작업에 의한 하위단계 작업이 선점
- 다단계 피드백 큐(Multi Level Feedback Queue)
- 큐마다 서로 다른 CPU시간 할당량을 부여, FIFO+라운드 로빈 스케줄링 기법 혼합
비선점형 : 한 프로세스가 CPU를 할당 받으면, 작업 종료후 다시 반환되기까지 다른 프로세스가 점유 불가능한 방식
- 우선순위(Priority)
- 기한부(Deadline)
- FCFS(=FIFO)
- 프로세스가 대기 큐에 도착한 순서에 따라 CPU 할당
- SJF(Short Job First)
- 프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원 점유, 기아 현상 발생
- HRN(Highest Response Ratio Next)
- 대기 중인 프로세스 중 현재 응답률이 가장 높은 것을 선택, 기아현상 최소화 기법
- 우선순위 = (대기시간 + 서비스시간) / 서비스시간
클라우드 컴퓨팅
인터넷의 서버를 통해 IT관련 서비스를 한 번에 사용할 수 있는 컴퓨팅 환경
- 인프라형(IaaS)
- 서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스
- 플랫폼형(PaaS)
- 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스
- 소프트웨어형(SaaS)
- 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용하는 서비스
프로토콜
서로 다른 시스템에 있는 두 개체간의 데이터 교환을 원활히 하기 위한 일련의 통신규약
OSI 7계층
계층 1 - 물리계층(Physical Layer)
0과 1의 비트 정보를 회선에 보내기 위한 신호 변환
계층 2 - 데이터 링크 계층(Data Link Layer)
링크의 설정, 유지, 종료 담당 및 노드 간의 회선제어, 흐름제어, 오류제어
- 프로토콜
- HDLC : 점대점 방식이나 다중방식 통신에 사용
- PPP : 두 통신 노드 간의 직접적인 연결
- 전송 단위
- 장비
계층 3 - 네트워크 계층(Network Layer)
다양한 길이의 패킷을 네트워크들을 통해 전달하고 전송 계층이 요구하는 서비스 품질을 위한 수단을 제공하는 계층
계층 4 - 전송 계층(transport layer)
상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않게 해주면서 종단간의 사용자들에게 신뢰성 있는 데이터를 전달하는 계층, 오류 제어 방식 사용
- 프로토콜
- TCP
- 옥텟을 안정적이고, 순서대로 에러없이 교환할 수 있게 해줌
(신뢰성, 연결성, 흐름제어, 혼잡제어)
- UDP
- 비연결성, 비신뢰성, 순서화되지 않은 데이터그램 서비스 제공
- 전송 단위
- 장비
계층 5 - 세션 계층(Session Layer)
프로세스들의 논리적인 연결, 응용 프로그램 간의 대화를 유지하기 위한 구조 제공, 연결이 끊어지지 않도록 유지 시켜주는 역할 수행
계층 6 - 표현 계층(Presentation Layer)
정보를 통신에 알맞은 형태로 만듦, 하위 계층에서 온 데이터를 사용자가 이해할 수 있는 형태로 만듦. 부호교환, 암복호화
계층 7 - 응용 계층(Application Layer)
사용자와 네트워크 간 응용서비스 연결, 데이터 생성
- 프로토콜
- HTTP : 하이퍼텍스트 교환
- FTP : 서버 - 클라이언트 사이의 파일을 전송
- SMTP : 이메일 보냄
- POP3 : 원격 서버로부터 이메일 가져옴
- IMAP : 원격 서버로부터 이메일 가져옴
- Telnet : 인터넷이나 로컬에서 네트워크 연결에 사용
- 장비
IPv4
- 32 비트
- 8비트씩 4부분으로 나뉜 10진수
- 유니캐스트, 멀티캐스트, 브로드캐스트
IPv6
- 128 비트
- 16비트씩 8부분으로 나뉜 16진수
- 유니캐스트, 멀티캐스트, 애니캐스트
개발환경 인프라 구성 방식
- 온프레미스(On-Pramise)방식
- 외부 인터넷망이 차단된 상태에서 인트라넷 망만을 활용하여 개발환경을 구축하는 방식
- 클라우드(Cloud)방식
- 아마존, 구글, 마이크로소프트 등 클라우드 공급 서비스를 하는 회사들의 서비스를 임대하여 개발환경을 구축하는 방식
- 하이브리드 방식