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

2024. 5. 17. 04:01·자격증/정보처리기사 인강 - 필기
목차
  1. 1. 프로그래밍 언어활용
  2. 1-1. 데이터타입
  3. 1-2. 변수 
  4. 1-3. 연산자
  5. 1-4. 제어문
  6. 1-5. 반복문
  7. 1-6. 배열
  8. 1-7. 입출력 함수
  9. 1-8. 절차적 객체지향 프로그래밍
  10. 2. 응용 SW 기초 기술활용 
  11. 2-1. 운영체제란 
  12. 2-2. 운영체제 목적(암기)
  13. 2-3. 운영체제 종류
  14. 2-4. Windows
  15. 2-5. Unix
  16. 2-6. 기억장치 관리
  17. 2-7. 주기억장치 할당
  18. 2-8. 가상기억장치(암기)
  19. 2-9. 기억장치 관리의 개요(암기)
  20. 2-10. 주기억장치 할당기법
  21. 2-11. 가상기억장치 구현기법/페이지 교체 알고리즘
  22. 2-12. 가상기억장치 관리사항(암기)
  23. 2-13. 프로세스의 개요
  24. 2-14. 스케줄링(암기)
  25. 2-15. 교착상태(암기)
  26. 2-16. 환경변수
  27. 2-17. 인터넷 OSI 참조모델(암기)
  28. 2-18. 네트워크 관련장비 
  29. 2-19. 프로토콜
  30.  

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. 프로토콜

 

 

 

 

 

'자격증 > 정보처리기사 인강 - 필기' 카테고리의 다른 글

제5과목 정보시스템 구축 관리  (0) 2024.05.17
제3과목 데이터베이스 구축  (0) 2024.05.17
제2과목 소프트웨어 개발  (0) 2024.05.17
제1과목 소프트웨어 설계  (0) 2024.04.16
  1. 1. 프로그래밍 언어활용
  2. 1-1. 데이터타입
  3. 1-2. 변수 
  4. 1-3. 연산자
  5. 1-4. 제어문
  6. 1-5. 반복문
  7. 1-6. 배열
  8. 1-7. 입출력 함수
  9. 1-8. 절차적 객체지향 프로그래밍
  10. 2. 응용 SW 기초 기술활용 
  11. 2-1. 운영체제란 
  12. 2-2. 운영체제 목적(암기)
  13. 2-3. 운영체제 종류
  14. 2-4. Windows
  15. 2-5. Unix
  16. 2-6. 기억장치 관리
  17. 2-7. 주기억장치 할당
  18. 2-8. 가상기억장치(암기)
  19. 2-9. 기억장치 관리의 개요(암기)
  20. 2-10. 주기억장치 할당기법
  21. 2-11. 가상기억장치 구현기법/페이지 교체 알고리즘
  22. 2-12. 가상기억장치 관리사항(암기)
  23. 2-13. 프로세스의 개요
  24. 2-14. 스케줄링(암기)
  25. 2-15. 교착상태(암기)
  26. 2-16. 환경변수
  27. 2-17. 인터넷 OSI 참조모델(암기)
  28. 2-18. 네트워크 관련장비 
  29. 2-19. 프로토콜
  30.  
'자격증/정보처리기사 인강 - 필기' 카테고리의 다른 글
  • 제5과목 정보시스템 구축 관리
  • 제3과목 데이터베이스 구축
  • 제2과목 소프트웨어 개발
  • 제1과목 소프트웨어 설계
kms152000
kms152000
  • kms152000
    백엔드 공부
    kms152000
  • 전체
    오늘
    어제
    • 분류 전체보기 (211) N
      • 데브코스 클라우드 백엔드 7기 TIL (2) N
        • TIL 작성 방법 (1) N
        • Java 기초 (1) N
      • JAVA - 백준 (110)
        • 입출력과 사칙연산 (13)
        • 조건문 (7)
        • 반복문 (12)
        • 1차원 배열 (10)
        • 문자열 (11)
        • 심화 1 (8)
        • 2차원 배열 (4)
        • 일반 수학 1 (7)
        • 약수, 배수와 소수 (6)
        • 기하 (8)
        • 시간 복잡도 (7)
        • 브루트 포스 (6)
        • 정렬 (11)
      • JAVA (32)
        • JAVA 개념 (13)
        • 생활코딩 JAVA 입문 수업 (19)
      • Frontend (0)
        • HTML (0)
        • CSS (0)
        • JS (0)
      • Backend (2)
        • Spring 인강 (2)
      • 코딩 테스트 (44)
        • Python - 백준 단계별로 풀어보기 (44)
      • 자격증 (12)
        • 정보처리기사 인강 - 필기 (5)
        • 정보처리기사 인강 - 실기 (7)
      • Database (0)
        • MySQL (0)
        • Oracle (0)
      • 개발 환경 (6) N
        • JAVA (1)
        • Eclipse (2)
        • Apache Tomcat (1)
        • IntelliJ (2) N
        • Windows (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • hELLO 티스토리 스킨
  • 인기 글

  • 태그

    Eclipse 환경 설정
    이클립스 환경 설정
    java 메서드
    관계연산자
    Eclipse console 한글 오류
    copyOf
    로깅 프레임워크
    JAVA 변수
    Eclipse 한글
    자바 컴파일 순서
    생활코딩
    백준
    키보드 입력과 로깅
    백준 자바 1001번
    asList
    백준 자바 1008번
    논리연산자
    백준 1000번 자바
    자바 기본 문법
    자바 개념
    대입 연산
    비트 연산자
    다차원 배열
    자바
    백준 10998번 자바
    백준 자바 10869번
    3항 연산
    사칙 연산
    제어자
    Java
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
kms152000
제4과목 프로그래밍 언어 활용

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.