자격증/정보처리기사 인강 - 필기

제4과목 프로그래밍 언어 활용

kms152000 2024. 5. 17. 04:01

1. 프로그래밍 언어활용

1-1. 데이터타입

: 변수에 저장될 데이터의 형식

 

C언어 데이터 형식

  • double
  • long
  • char
  • unsigned

 

 

1-2. 변수 

예약어

: 정해진 기능을 수행하도록 이미 용도가 정해져 있는 단어로, 변수 이름이나 다른 목적으로 사용할 수 없다.

 

 

 

 

 

1-3. 연산자

  1. 산술 연산자(Arithmetic Operator)
    • 사칙연산
  2. 시프트 연산자(Shift Operator)
    • <<: x 2^n
    • >>: /2
  3. 관계 연산자(Relation Operator)
    • True or False로 반환
  4. 비트 연산자(Bit Operator)
    • &&: 두 개의 논릿값이 모두 참이면 참, 그렇지 않으면 거짓
    •  ||: 두 개의 논릿값 중 하나가 참이면 참, 그렇지 않으면 거짓
  5. 논리 연산자(Logic Operator)
    •  ^
    • ~
    • &
    • 4번과 같다
  6. 대입 연산자
  7. 기타 연산자

 

 

1-4. 제어문

  • if
  • switch

 

 

1-5. 반복문

  • for
  • while
  • Do while

 

 

 

 

1-6. 배열

C언어

  • int array[5] = [3];   0에 3 들어가고 나머지 0
  • char array[5] = "abcd";   순서대로 들어가고 마지막에 \0(딜리미터)

파이썬

  • List: 맨 마지막부터 배열 주소 -1로도 표현 가능
  • Data[2:5]: 2부터4까지
  • Data[-5:-1:2]: -5부터 -2까지 2만큼 옮기면서
  • Data[-5::2]: 2만큼 옮기면서 끝까지
  • 공백이면 처음부터 or 끝까지

 

 

1-7. 입출력 함수

C언어 데이터 입출력

 

scanf는 스페이스바 기준으로 끊지만 gets는 전체 문장 출력 출력은 puts로 한다.

getchar, putchar는 한 문자

 

 

Java 언어 데이터 입출력

 

 

 

 

 

1-8. 절차적 객체지향 프로그래밍

절차적 프로그래밍

  • C.COBOL
  • FORTRAN
  • ALGOL

 

객체지향 프로그래밍

  • C++
  • Java
  • Python

 

스크립트 언어

: HTML 문서 안에 직접 프로그래밍 언어를 삽입하여 사용하는 것으로, 컴파일 되지 않고 별도의 번역기가 분석하여 동작하게 하는 언어

서버용

  • ASP
  • JSP
  • PHP
  • 파이썬

클라이언트용

: JavaScript

 

 

 

 

 

2. 응용 SW 기초 기술활용 

2-1. 운영체제란 

: 컴퓨터 시스템의 자원(CPU, 주기억장치, 보조기억장치 등)을 효율적으로 관리하여 사용자가 효과적으로 사용할 수 있는 환경을 제공하는 프로그램

 

 

 

2-2. 운영체제 목적(암기)

편리성

  • 편리한 환경제공

효율성(성능평가 기준)

  • 처리량(Throughput) 향상
  • 반환시간(Turn Around Time) 단축
  • 사용가능도(Availability) 향상: 가동률
  • 신뢰도(Reliability) 향상

제어서비스향상

  • 입출력 장치 관리
  • 시스템 오류 예방

 

2-3. 운영체제 종류

 

 

2-4. Windows

  • Plug and Play(PnP)
    • 사용자가 사용하기 원하는 하드웨어를 시스템에 부착하면 자동으로 인식하여 동작하게 해주는 기능
  • OLE의 기능
    • 응용 프로그램간의 자료공유
  • 멀티태스킹 지원
  • 네트워크 기능 강화

 

 

2-5. Unix

  • HardWare
  • Kernal(진짜 작업)
    • 시스템의 중심부
    • 프로세스 관리, 기억장치 관리
    • 부팅 시 주기억장치에 적재되어 상주하면서 실행
  • Shell
    • 사용자의 명령을 수행하는 명령어 해석
    • 인터페이스 담당
    • 명령어 인식 후 프로그램 호출
  • Utility
  • 멀티 유저, 멀티 태스킹 지원
  • 트리 구조의 파일 시스템

 

 

 

2-6. 기억장치 관리

2-7. 주기억장치 할당

 

 

 

 

 

 

 

2-8. 가상기억장치(암기)

: 기억장치의 이용률과 다중프고그래밍의 효율 증가. 주기억장소의 물리적 공간보가 큰 프로그램 실행 가능

주기억장치로 옮겨 넣을 주소 조정: Mapping(사상)

 

메모리 할당 기법

 

  1. 연속 할당 기법: 실행을 위한 각 프로세스를 주기억장치 공간 내에서 인접되게 연속하여 저장하는 방법, 단편화 방지
  2. 메모리 분산 할당 기법
    • Paging 기법
      • 프로세스를 일정하게 분할
      • 내부 단편화 발생(남는 메모리 발생)
      • 주소 변환을 위한 페이지 멥 테이블이 필요
    • Segmentation 기법
      • 논리적인 단위로 나눈 후 주기억장치에 적재
      • 외부 단편화 발생(한 프레임에 남는 메모리가 생김)
      • 고유한 이름과 크기를 갖는다
      • 세그먼트 맵 테이블이 필요하다
      • 기억장치 보호키가 필요
    • Paging Segmentation 혼용기법

 

 

 

 

2-9. 기억장치 관리의 개요(암기)

2-10. 주기억장치 할당기법

2-11. 가상기억장치 구현기법/페이지 교체 알고리즘

  • 반입(Fetch) 전략: 보조기억장치에 보관중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지에 대한 전략 
    • 요구 반입(Demand Fetch)
    • 예상 반입(Anticipatary Fetch)
  • 배치(Placement) 전략: 새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 위치시킬지에 대한 전략
    • 최초적합(First Fit): 공간이 부족하지 않으면 바로 위치
    • 최적접합(Best Fit): 가장 비슷한 곳에 위치
    • 최악적합(Warst Fit): 남는 값이 젤 많은 곳에 위치
  • 교체(Replacement) 전략: 주기억장치의 모든 영역이 이미 사용중인 상태에서 새로운 데이터를 배치할 때 어느 영역을 교체할지에 대한 전략
    • FIFO(First In First Out Page Replacement): 가장 오랫동안 사용되지 않았던 페이지를 먼저 교체
    • OPT(Optimal Page Replacement)
    • LRU(Least Recently Used Page Replacement): 가장 최근 사용하지 않은 페이지를 뺀다.
    • LFU(Least Frequently Used Page Replacement): 빈도수가 낮은 페이지를 뺀다.
    • NUR
    • SCR

 

 

 

2-12. 가상기억장치 관리사항(암기)

2-13. 프로세스의 개요

  • 페이지 크기가 작을 경우
    • 페이지 단편화 감소, 페이지를 주기억장치로 이동하는 시간 감소
    • Page map table 크기는 커지고 매핑 속도가 늦어진다.
    • 디스크 접근 횟수가 많아져서 전체적인 입출력 시간은 늘어난다.
  • 페이지 크기가 클 경우
    • Page map table 크기는 작아지고 매핑 속도가 빨라진다.
    • 전체적인 입출력 시간은 줄어든다.
    • 페이지 단편화가 증가된다.

 

페이징 기법의 문제점 - 스레싱

: 어떤 프로세스가 계속적으로 페이지 부재가 발생하여 프로세스의 실제 처리시간보다 페이지 교체 시간이 더 많아지는 현상 -> 페이지 부재가 계속 증가하여 기억장치 접근 횟수 증가

 

 

 

Locality

  • 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질이 있다는 이론
  • Denning 교수의 의해 증명
  • 시간 구역성: Loop, Stack, subroutine, counting, Totaling 변수
  • 공간 구역성: 배열 순회, 순차적 코드 실행
  • 스레싱 방지를 위한 working set이론의 기반

 

 

프로세스

  • CPU에 처리되는 사용자 프로그램
  • 운영쳊가 관리하는 실행단위
  • 비동기적 행위: 규칙없이 독립적
  • 프로시저가 활동중인 것
  • PCB(Process Control Block): 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳

 

 

실행중인 프로세스가 CPU 할당 시간을 다 사용한 후, Ready 상태로 전이한다.

디스패치: 준비 상태에서 대기하고 있는 프로세스 중 하나가 스케줄링 되어 중앙처리 장치를 할당 받아 실행상태로 전리되는 과정 

 

 

 

 

 

2-14. 스케줄링(암기)

스케줄러

: 프로세스를 바꿔주는 일을 하는 것

 

문맥교환(Context Switching)

: 스케줄러가 프로세스를 바꿔주는 것

 

 

스케줄링 성능 평가기준

  • CPU 이용률
  • 처리능력
  • 대기시간
  • 응답시간
  • 반환시간

 

  • 비선점
    • FCFS
    • SJF -> HRN(보완버전): 우선순위 = (대기시간+서비스시간)/서비스시간
    • priority
  • 선점(오버헤드가 많다.암기.)
    • Round Robin
    • SRT
    • 다단계큐
    • 다단계 피드백 큐

 

2-15. 교착상태(암기)

: 두 개 이상의 작업이 거로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 아무것도 완료되지 못하는 상태

 

교착상태 조건

  • 상호배제(Mutual Exclution): 한 프로세스가 사용하는 자원은 다른 프로세스와 공유 할 수 없는 베타적인 자원이어야 한다. 공유불가
  • 점유와 대기(Hold and wait): 프로세스가 자원을 할당받은 상태에서 다른 자원을 기다리는 상태여야 한다.
  • 비선점(No Preemption): 한 프로세스가 사용 중인 자원은 다른 프로세스가 빼앗을 수 없는 비선점 자원이어야 한다.
  • 환형대기(Circular wait): 점유와 대기를 하는 프로세스 간의 관계가 원을 이루어야 한다.

 

 

교착상태 해결 방법

  • 교착상태 예방
  • 교착상태 회피(Avoidance): 다익스트라 알고리즘(최단경로)
    • 문제점: 프로세스 자신이 사용할 모든 자원을 미리 선언해야 한다.(자원 수 고정적, 자원의 낭비)
  • 교착상태 검출과 회복

 

교착상태 예방

  • 상호배제 예방
  • 점유와대기 예방
  • 비선점 예방
  • 환형대기 예방

 

 

 

 

2-16. 환경변수

Windows에서는 앞에 %가 붙는다.

UNIX/Linux에서는 앞에 $가 붙는다. 

  • cat: 파일 내용을 화면에 표시
  • ls: 현재 디렉토리의 파일 목록 표시
  • Find(): 파일 찾기
  • Fork(): 프로세스 생성
  • exec(): 새로운 프로세스 수행
  • wait(): 자식 프로세스의 하나가 종료될 때까지 부모 프로세스를 임시 중지

 

 

 

2-17. 인터넷 OSI 참조모델(암기)

구분 IPv4 Ipv6
주소길이 32bit 128bit
표시방법 10진수(8비트씩 4부분) 16진수(16비트씩 8부분)
주소개수 43억개 4.3 X 10^38
주소할당 A,B,C,D 클래스 단위 비순차적 할당 네트워크 규모에 따른 순차적 할당
품질제어 Best Effort 방식/보장곤란 서비스별로패킷 구분/품질보장
헤더크기 가변 고정
보안기능 별도설치 기본제공
Plug&Play X O
모바일IP X O
웹캐스팅 X O
전송방식 Multicast, unicast, broardcast Multicast, unicast, anycast

 

 

DNS SERVER

  • 도메인 주소를 컴퓨터가 인식할 수 있는 IP(인터넷프로토콜)주소로 변환해 주는 서버
  • 분산 데이터베이스

 

서브넷 마스크

: IP 주소에서 네트워크 ID와 호스트 ID를 구별하는 방식

 

 

데이터 단위(암기)

  • Application
    • Message
    • HTTP, FTP, SMTP, POP3, IMAP
  • Presentation
    • Message
    • 암호화 압축, 코드 변환, 구문검색
  • Session
    • Message
    • 이용자 사이의 연결, 대화 제어, 동기점(Synchronized Point)를 이용한 데이터복구
  • Transport
    • Segment
    • End to end 간의 전송, 오류제어, 흐름제어
    • TCP, UDP
  • Network
    • Packet
    • Router
    • 네트워크 연결 설정 유지, 해제
    • IP, ARP(TCP/IP에서 사용되는 논리 주소를 물리주소로 변환시켜주는 프로토콜), RAPP
    • RIP, OSPF, BGP
  • DataLink
    • Frame
    • 랜카드, Switch, Bridge
    • 프레임 동기화, 순서제어 기능
    • HDLC, FRAME-RELAY, ATM, PPP, LLC
  • Physical
    • Bit
    • Repeater 

 

 

 

2-18. 네트워크 관련장비 

 

 

 

2-19. 프로토콜