티스토리 뷰
ch01 운영체제의 특징
▶ 운영체제 : 사용자가 컴퓨터의 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공해 주는 소프트웨어
▶ 운영체제 특징
- 사용자 편리성 제공 : 한정된 시스템 자원을 효과적으로 사용할 수 있도록 관리 및 운영
- 인터페이스 기능 담당 : 컴퓨터 시스템과 사용자 연결
- 스케줄링 담당 : 자원의 현재 상태를 파악하고 자원 분배를 위한 스케줄링
- 제어 기능 : 입출력 장치와 사용자 프로그램 제어
▶ 운영체제 = 쉘 + 커널
- 쉘 : 사용자의 명령어를 입력받아 기계어 형태로 변환하여 커널에 전달하는 명령어 해석기
- 커널 : 하드웨어와 관련된 내부적 역할 담당. 운영체제의 핵심적인 기능이 모여있음
▶ 운영체제 종류 : 윈도우즈 , 유닉스 , 리눅스 , 맥 , 안드로이드
① 윈도우즈 : 마이크로소프트사가 개발한 운영체제
- 윈도우즈 특징 *지선자오*
- GUI 제공
- 선점형 멀티태스킹 방식 제공
- 자동감지 기능 제공
- OLE 사용
② 유닉스 : 교육 및 연구 기관에서 사용되는 범용 다중 사용자 방식의 시분할 운영체제
- 1960년대 AT&Bell 연구소, MIT 및 General Electric 사가 공동으로 연구 개발
- 초기 운영체제는 Multics이고 C언어로 재이식
- 유닉스 계열 특징 *대다 사이계*
- 대화식 운영체제 기능 제공
- 다중 작업 기능 제공
- 다중 사용자 기능 제공
- 이식성 제공
- 계층적 트리 구조 파일 시스템 제공
③ 리눅스 : 유닉스 기반 개발, 소스 코드가 공개된 오픈 소스 기반 운영체제
▶ 윈도우즈 운영체제 기본 명령어
명령어 | 설명 |
ATTRIB | 파일 속성 표시하거나 바꿈 |
CALL | 다른 일괄 프로그램 호출 |
CD (Change Directory) | 현재 디렉터리 이름 보여주거나 바꿈 |
CHKDSK | 디스크 검사 |
CLS | 화면 지움 |
CMD | Windows 명령 프로프트 창 열어줌 |
COMP | 두개 이상의 파일 비교 |
DISKPART | 디스크 파티션 속성 표시하거나 구성 |
ECHO | 메시지 표시 |
ERASE | 하나 이상의 파일 지움 |
EXIT | 프로그램 마침 |
▶ 리눅스/유닉스 계열 기본 명령어
: 쉘에서 입력 가능
- 최상위 유저 (root) : #
- 일반 유저 : $
명령어 | 설명 |
cat | 파일 내용을 화면에 출력 |
last | 로그인/로그아웃 정보 표시 |
who | 현재 접속 사용자 정보 표시 |
ls | 자신이 속해있는 폴더에서 파일 및 폴더 표시 |
pwd | 현재 작업 중인 디렉토리의 절대 경로 출력 |
rm / cp / mv | 파일 삭제 / 파일 복사 / 파일 이동 |
ps | 현재 실행되는 프로세스 목록 출력 |
chmod / chown | 특정 파일 또는 디렉토리의 퍼미션 수정 / 파일이나 디렉토리의 소유자, 소유 그룹 수정 |
host | 도메인 명은 아는데 ip 주소를 모르거나 그 반대인 경우 |
▶ 메모리 관리 기법
*반배할교*
- 반입 기법 : 메모리로 적재 시기 결정 (When)
- 배치 기법 : 메모리 적재 위치 결정 (Where)
- 할당 기법 : 메모리 적재 방법 결정 (How)
- 교차 기법 : 메모리 교체 대상 결정 (Who)
▶ 메모리 배치 기법
- 최초 적합 (First-fit) : 가용 공간 중 첫 번째 분할에 할당
- 최적 적합 (Best-fit) : 가용 공간 중 가장 크기가 비슷한 공간 선택
- 최악 적합 (Worst-fit) : 가용 공간 중 가장 큰 공간에 할당
▶ 프로세스 상태
*생준실대완*
- 생성(Create) 상태 : 프로세스 생성
- 준비(Ready) 상태 : CPU 할당받을 수 있는 상태
- 실행(Running) 상태 : 프로세스가 CPU 할당받아 동작 중
- 대기(Waiting) 상태 : 입출력 처리 등으로 인해 CPU를 양도하고 대기 리스트에서 기다리는 상태
- 완료(Complete) 상태 : 수행 종료
▶ 프로세스 상태 전이
*디타 블웨*
- 디스패치 (Dispatch) : 실행될 프로세스를 선정하여 CPU 할당
- 타이머 런 아웃 (=할당 시간 초과) : 지정된 시간이 초과되면 다시 준비 상태로 전이
- 블록 (=입출력발생) : CPU를 스스로 반납하고 입출력 완료될 때까지 대기 상태로 전이
- 웨이크 업 : 입출력이 종료되면 준비 상태로 전이
▶ 프로세스 스케줄링 주요 용어
- 서비스 시간 : 프로세스가 결과 산출하기까지 소요되는 시간
- 응답시간 (반환시간) : 프로세스들이 입력되어 수행하고 결과를 산출하기까지 소요되는 시간
- 응답시간 = 대기시간 + 수행시간
- Turnaround time / Response time
- 평균 응답시간 : 프로세스가 결과를 산출하기까지 소용되는 시간 평균
- 대기시간 : 프로세스가 할당 대기까지 큐에 대기하는 시간
- 평균 대기시간 : 프로세스가 대기 큐에서 대기하는 평균 시간
- 응답률 : (대기시간 + 서비스시간) / 서비스시간 => HRN(비선점형 스케줄링) 에서 응답률이 높으면 우선순위 높음
▶ 선점형 스케줄링 : 하나의 프로세스가 CPU를 차지하고 있을 때, 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단 시키고 CPU를 점유하는 방식
*SMMR*
- SRT : 가장 짧은 시간이 소요되는 프로세스를 먼저 수행
- 다단계 큐 : 작업들을 여러 종류 그룹으로 분할, 여러 개의 큐를 이용해 하위단계 작업 선점
- 다단계 피드백 큐 : FCFS + 라운드로빈 스케줄링 기법
- 라운드 로빈 (Round Robin) : 같은 CPU 점유시간을 할당하고 할당된 시간 내에 처리를 완료하지 못하면 가장 뒤로 보내지고 다음 프로세스로 넘어가는 방식. 선점형 FCFS!!
▶ 비선점형 스케줄링 : 한 프로세스가 CPU를 할당받으면 작업 종료 후 CPU 반환 시까지 다른 프로세스는 CPU 점유 불가능한 방식
*우기 HFS*
- 우선순위 : 우선순위에 따라 CPU 할당
- 기한부 : 명시된 시간이나 기한 내 완료되도록 계획
- HRN : 현재 응답률이 가장 높은 것을 선택. SJF의 약점인 기아현상을 보완한 기법
- 기아현상 : 시스템 부하가 많아 준비 큐에 있는 낮은 등급의 프로세스가 무한정 기다리는 현상
- 에이징 : 기아현상을 해결하기 위해 오랫동안 기다린 프로세스에게 우선순위를 높여주도록 처리하는 기법
- FCFS (FIFO) : 도착한 순서에 따라 CPU 할당
- SJF : 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원 점유
▶ 반환시간 / 대기시간 계산방법
*반종도 대반서*
반환시간 = 종료시간 - 도착시간
대기시간 = 반환시간 - 서비스시간
▶ 가상화 : 물리적인 리소스들을 사용자에게 하나로 보이게 하거나, 하나의 리소스를 여러 개로 보이게 하는 기술
▶ 가상화의 종류
- 플랫폼 가상화 : 호스트 프로그램이 게스트 프로그램을 만들어 마치 독립된 환경을 만들어 낸 것 처럼 보여주는 기법
- 리소스 가상화 : 게스트 소프트웨어 위에서 사용자는 독립된 하드웨어에서 소프트웨어가 실행되는 것처럼 활용하는 기법
▶ 가상화 기술요소
- 컴퓨팅 가상화 : 물리적으로 컴퓨터 리소스를 가상화하여 논리적 단위로 리소스를 활용할 수 있도록 하는 기술
ex) 하이퍼바이저
- 스토리지 가상화 : 스토리지와 서버 사이에 소프트웨어/하드웨어 계층을 추가하여 스토리지를 논리적으로 제어 및 활용할 수 있도록 하는 기술
- I/O 가상화 : 서버와 I/O 디바이스 사이에 위치하는 미들웨어 계층. 서버의 I/O 자원을 물리적으로 분리하고 효율적인 연결 지원
- 컨테이너 : 컨테이너화된 애플리케이션들이 단일 운영체제상에서 실행되도록 해주는 기술
- 분산처리 기술 : 여러 대의 컴퓨터 계산 및 저장능력을 이용하여 대용량 데이터를 처리하고 저장하는 기술
- 네트워크 가상화 기술 : 중계장치의 가상화를 통한 가상 네트워크를 지원하는 기술
▶ 클라우드 컴퓨팅 : 인터넷을 통해 가상화된 컴퓨터 시스템 리소스를 제공하고, 정보를 클라우드에 연결된 다른 컴퓨터로 처리하는 기술
▶ 클라우드 컴퓨팅 분류
*사공하*
- 사설 클라우드 : 기업 또는 조직 내부에서 보유하고 있는 컴퓨팅 자원을 사용해 내부에 구축되어 운영되는 클라우드
- 공용 클라우드 : 다중 사용자를 위한 컴퓨팅 자원 서비스를 제공하는 클라우드
- 하이브리드 클라우드 : 사설 + 공용 클라우드 모두 사용
▶ 클라우드 컴퓨팅 유형
*인플소*
- 인프라형 서비스 (IaaS) : 서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스
- 플랫폼형 서비스 (PaaS) : 인프라를 생성, 관리하는 복잡함 없이 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스
- 소프트웨어형 서비스 (SaaS) : 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용하는 서비스
ch02 네트워크 기초 활용하기
▶ 네트워크 : 원하는 정보를 원하는 수신자나 기기에 정확하게 전송하기 위한 기반 인프라
▶ OSI 7 계층
① 물리 계층 (Physical) : 0과 1의 비트 정보를 회선에 보내기 위한 전기적 신호 변환
- 전송 단위 : 비트 (Bit)
- 장비 : 허브, 리피터
- 허브 : 하나의 네트워크로 수신된 정보를 여러 대의 컴퓨터로 송신하기 위한 장비
- 리피터 : 디지털 신호를 증폭시켜주는 역할
② 데이터링크 계층 (Data Link) : 링크 설정과 유지 및 종료 담당. 노드 간 회선제어, 흐름제어, 오류 제어
- 전송 단위 : 프레임 (Frame)
- 장비 : 브리지, L2 스위치
- 브리지 : 두 개의 근거리통신망(LAN)을 서로 연결해 주는 통신망 연결 장치
- L2 스위치 : 출발지에서 들어온 프레임을 목적지 MAC 주소 기반으로 빠르게 전송시키는 통신 장치
- 프로토콜
- HDLC : 점대점 방식이나 다중방식의 통신에 사용
- PPP : 두 통신 노드 간의 직접적인 연결을 위해 일반적으로 사용
- 프레임 릴레이 : 단순히 데이터 프레임들의 중계기능과 다중화 기능만 수행
- ATM : 비동기식 시분할 다중화 방식의 패킷형 전송 기술
③ 네트워크 계층 (Network) : 다양한 길이의 패킷 전송, 단말기 간 데이터 전송을 위한 최적화된 경로 제공
- 전송단위 : 패킷
- 장비 : 라우터, 게이트웨이
- 라우터 : LAN과 LAN / LAN과 WAN을 연결, 최적의 경로 지정
- 게이트웨이 : 프로토콜을 서로 다른 통신망에 접속할 수 있게 해주는 장치
- 프로토콜
- IP : 송수신간 패킷 단위로 데이터를 교환하는 네트워크에서 정보를 주고받는 데 사용
- ARP : IP 주소를 MAC 주소로 변환
- RARP : MAC 주소는 알지만 IP 주소를 모르는 경우 IP 주소 요청을 위해 사용
- ICMP : IP 패킷 처리시 발생되는 문제를 알려주는 프로토콜 메시지
- IGMP : 멀티캐스트 그룹 멤버십 구성에 사용
- 라우팅 프로토콜 : 데이터 전송을 위해 목적지까지 갈 수 있는 여러 경로 중 최적의 경로를 설정
* 라우팅 프로토콜
- 정적 라우팅 : 패킷 전송이 이루어지기 전에 경로 정보를 라우터가 미리 저장하여 중개
- 동적 라우팅 : 라우터의 경로 정보가 네트워크 상황에 따라 동적으로 변경되어 중개
- RIP : AS 내에서 사용하는 거리 벡터 알고리즘에 기초하여 개발된 내부 라우팅 프로토콜
벨만-포드 알고리즘 사용, 15홉 제한, UDP 사용, 30초마다 정보 공유 - OSPF : 자신을 기준으로 링크 상태 알고리즘을 적용하여 최단 경로를 찾는 라우팅 프로토콜
다익스트라 알고리즘 사용 - BGP : AS 상호 간 경로 정보를 교환하기 위한 라우팅 프로토콜
- 라우팅 알고리즘
- 거리 벡터 알고리즘 (Distance Vector Algorithm) : 인접 라우터와 정보를 공유하여 목적지까지의 거리와 방향 결정
- 링크 상태 알고리즘 (Link State Algorithm) : 링크 상태 정보를 모든 라우터에 전달하여 최단 경로 트리 구성
④ 전송 계층 (Transport) : 송수신 프로세스 간 연결, 종단 간 사용자들에게 신뢰성 있는 데이터 전달
- 전송 단위 : 세그먼트 (Segment)
- 장비 : L4 스위치
- 프로토콜
- TCP : 신뢰성 보장, 연결 지향적 특징, 흐름 제어, 혼잡 제어 *신연흐혼*
- UDP : 비신뢰성, 비연결성, 순서화되지 않은 데이터그램 서비스 제공, 실시간 응용 및 멀티캐스팅 가능, 단순헤더
⑤ 세션 계층 (Session) : 송수신간 논리적인 연결
- 전송 단위 : 데이터 (Date)
- 장비 : 호스트
- 프로토콜
- RPC : 별도의 원격 제어를 위한 코딩 없이 함수나 프로시저를 실행할 수 있는 프로토콜. 원격 프로시저 호출
- NetBIOS : 응용계층의 애플리케이션 프로그램에게 API 제공하여 상호 통신할 수 있도록 해주는 프로토콜
⑥ 표현 계층 (Presentation) : 데이터를 사용자가 이해할 수 있는 형태로 만듦, 암/복호화
- 전송 단위 : 데이터 (Date)
- 장비 : 호스트
- 프로토콜
- JPEG : 이미지를 위해 만들어진 표준 규격
- MPEG : 멀티미디어를 위해 만들어진 표준 규격
⑦ 응용 계층 (Application) : 사용자와 네트워크 간 응용서비스 연결, 데이터 생성
- 전송 단위 : 데이터 (Date)
- 장비 : 호스트
- 프로토콜
- HTTP : 인터넷에서 데이터를 주고받을 수 있는 프로토콜 (80번 포트)
- FTP : 서버와 클라이언트 사이의 파일을 전송하기 위한 프로토콜 (20,21번 포트)
- SMTP : TCP 포트 번호 25번을 사용해 이메일을 보내기 위해 이용
- POP3 : 이메일 가져오는 데 사용 (메일 내용이 PC에 저장)
- IMAP : 이메일 가져오는 데 사용 (메일 내용이 서버에 저장)
- Telnet : 네트워크 연결에 사용
▶ 프로토콜
- 서로 다른 시스템이나 기기들 간 데이터 교환을 원활히 하기 위한 표준화된 통신규약
- 컴퓨터가 메시지를 전달하고, 메시지가 제대로 도착했는지 확인, 도착하지 않았을 경우 재전송하는 일련의 방법을 '기술적 은어'를 뜻하는 프로토콜
▶ 프로토콜 3요소
*구의타*
- 구문 (Syntax) : 시스템 간의 정보 전송을 위한 데이터 형식, 코딩, 신호 레벨 등 규정
- 의미 (Semantic) : 시스템 간의 정보 전송을 위한 제어 정보로 조정과 에러 처리를 위한 규정
- 타이밍 (Timing) : 시스템 간의 정보 전송을 위한 속도 조절, 순서 관리 규정
▶ 네트워크 프로토콜 : 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고받는 양식과 규칙의 체계
▶ 프로토콜 특징
- 단편화 : 작은 블록으로 나누어지는 기법
- 재조립 : 단편화되어 온 조각들을 원래 데이터로 복원
- 캡슐화 : 상위 계층의 데이터에 각종 정보를 추가하여 하위 계층으로 보내는 기법
- 연결 제어 : 데이터의 전송량이나 속도 제어
- 오류 제어 : 전송 중 잃어버리는 데이터나 오류가 발생한 데이터 검증
- 동기화 : 송수신 측의 시점을 맞추는 기법
- 다중화 : 하나의 통신 회선에 여러 기기들이 접속할 수 있는 기술
- 주소 지정 : 송수신지의 주소를 부여하여 정확한 데이터 전송 보장
▶ IPv4 : 데이터를 교환하기 위한 32비트 주소체계를 갖는 네트워크 계층의 프로토콜. 10진수 총 12자리, 네부분으로 나뉨
- A클래스 : 0~127 , 자유롭게 사용자에게 부여 가능
- B클래스 : 128~191
- C클래스 : 192~223
- D클래스 : 224~239 , 멀티캐스트 용도
- E클래스 : 240~255 , 연구
▶IPv6 : IPv4가 가진 주소 고갈, 보안성, 이동성 지원 등의 문제점을 해결하기 위해 개발된 128비트 주소체계를 갖는 차세대 인터넷 프로토콜.
▶ IPv4 vs IPv6
구분 | IPv4 | IPv6 |
주소길이 | 32bit | 128bit |
표시방법 | 8비트씩 4부분으로 나뉜 10진수 (192.168.10.1) |
16비트씩 8부분으로 나뉜 16진수 (2001:0DB8::1428:57ab) |
헤더크기 | 가변 | 고정 |
전송방식 | *유멀브* 유니캐스트, 멀티캐스트, 브로드 캐스트 |
*유멀애* 유니캐스트, 멀티캐스트, 애니캐스트 |
▶ IPv4에서 IPv6로 전환 방법
- 듀얼 스택 : IP 계층에 두가지의 프로토콜이 모두 탑재되어 있고 통신 상대방에 따라 해당 IP 스택 선택
- 터널링 : IPv4 망에 터널을 만들고 IPv4에서 사용하는 프로토콜로 캡슐화하여 전송
- 주소변환 : IPv4 망과 IPv6 망 사이에 주소 변환기(게이트웨이)를 사용하여 패킷 변환
▶ 유니캐스트 : 1:1로 트래픽 또는 메시지 전송하는 프로토콜
▶ 멀티캐스트 : 같은 내용의 데이터를 여러 명의 특정한 그룹의 수신자들에게 동시에 전송할 수 있는 프로토콜
▶ 브로드 캐스트 : 하나의 송신자가 같은 서브 네트워크상의 모든 수신자에게 데이터 전송하는 프로토콜
▶ 애니캐스트 : 수신자 그룹 안에서 가장 가까운 노드로 연결시키는 전송 프로토콜
▶ 패킷 스위칭 : 작은 블록의 패킷으로 데이터를 전송하며, 데이터를 전송하는 동안만 네트워크 자원을 사용하도록 하는 통신 방식
- X.25 : 패킷 교환망을 통해 패킷을 원활이 전달하기 위한 통신 프로토콜
- ATM : 비동기 전송모드라고 하는 광대역 전송에 쓰이는 스위칭 기법
ch03 기본 개발환경 구축하기
▶ 개발환경 인프라 구성 방식
- 온프레미스 방식 : 외부 인터넷망이 차단된 상태에서 인트라넷망만을 활용하여 개발환경을 구축하는 방식
- 클라우드 방식 : 클라우드 공급 서비스를 하는 회사들의 서비스를 임대하여 개발환경을 구축하는 방식
- 하이브리드 방식 : 온프레미스 + 클라우드 혼용
▶ 개발 환경 지원도구
- 요구사항 관리 : 프로젝트 수행 시 정확한 요구사항 정의, 요구사항 관리
- 설계 : ERD를 통화 자동화된 데이터 모델링, UML 자동 생성
- 구현 : 개발자의 소프트웨어 구현 시 개발자 편의성 고려
- 테스트 : 자동 테스트 수행
- 빌드 : 소프트웨어 빌드 자동화
- 형상 관리 : 개발 산출물 관리
- 품질 관리
- 이슈 관리
- 프로젝트 관리
▶ 클라우드 기반 개발환경 인프라 제공 범위
- 컴퓨팅 환경 : 프로그램을 설치하고 운용할 하드웨어 장비 세팅
- 스토리지 : 대규모 데이터를 저장, 관리, 전송, 이중화하기 위한 저장 장치 세팅
- 데이터베이스 : 실데이터를 저장하고 관리하기 위한 데이터베이스 세팅
- 네트워킹 전송 : 구성된 서비스를 효율적으로 전달하기 위한 환경 세팅
- 개발자 도구 : 프로그램을 실제 개발하기 위한 제반 환경 구축
- 보안 환경 구축 : 외부 침입으로부터 시스템과 데이터를 보호하기 위한 환경 구축
- 응용 기술 세팅
- 생산성 향상
'정보처리기사' 카테고리의 다른 글
[정보처리기사] 💡 정처기 실기 정리 네비게이션 💡 (0) | 2022.04.20 |
---|---|
[정보처리기사] 실기 - 10과목 애플리케이션 테스트 관리 정리 (0) | 2022.04.20 |
[정보처리기사] 실기 - 9과목 소프트웨어 개발 보안 구축 정리 (0) | 2022.04.17 |
[정보처리기사] 실기 - 8과목 서버 프로그램 구현 정리 (2) | 2022.04.14 |
[정보처리기사] 실기 - 6과목 프로그래밍 언어 활용 정리 (0) | 2022.04.12 |
- Total
- Today
- Yesterday
- indexOf()
- CSS
- 정보처리기사
- php 달력만들기 응용
- 갤러리띄우기
- 현장실습 기록
- 정보처리기사 실기 정리
- 현장실습
- 이더리움
- 백준
- MySQL
- set 객체
- 프로그래머스
- 정처기 실기 정리
- css grid
- JavaScript
- 노마드코더
- C언어
- DAPP
- HTML
- 정처기 실기
- 홈페이지 만들기
- 블록체인
- 스마트컨트랙트
- 리액트
- 정보처리기사 실기
- 졸업작품
- php게시판만들기
- php
- 졸업작품준비
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |