개발자 '쑥말고인절미'
[정보처리기사] 4과목 프로그래밍 언어 활용 280, 282 ~ 287 (C언어의 대표적인 표준 라이브러리, 운영체제의 정의 및 목적/구성/기능, Windows, Unix의 개요 및 특성/구성) 본문
STUDY/정보처리기사
[정보처리기사] 4과목 프로그래밍 언어 활용 280, 282 ~ 287 (C언어의 대표적인 표준 라이브러리, 운영체제의 정의 및 목적/구성/기능, Windows, Unix의 개요 및 특성/구성)
쑥말고인절미 2024. 3. 1. 22:10- 280 C언어의 대표적인 표준 라이브러리
- 282 운영체제의 정의 및 목적
- 283 운영체제의 구성
- 284 운영체제의 기능
- 285 Windows
- 286 UNIX의 개요 및 특징
- 287 UNIX 시스템의 구성
- C언어의 대표적인 표준 라이브러리
- C언어는 라이브러리를 헤더 파일로 제공하는데, 각 헤더 파일에는 응용 프로그램 개발에 필요한 함수들이 정리되어 있다.
- 헤더 종류
- 1) stdio.h
- 데이터의 입·출력에 사용되는 기능들을 제공함
- 주요 함수 : printf, scanf, fprintf, fscanf, fclose, fopen 등
- 2) math.h
- 수학 함수들을 제공함
- 주요 함수 : sqrt, pow, abs 등
- 3) string.h
- 문자열 처리에 사용되는 기능들을 제공함
- 주요 함수 : strlen, strcpy, strcmp 등
- 4) stdlib.h
- 자료형 변환, 난수 발생, 메모리 할당에 사용되는 기능들을 제공함
- 주요 함수 : atoi, atof, srand, rand, malloc, free 등
- 5) time.h
- 시간 처리에 사용되는 기능들을 제공함
- 주요 함수 : time, clock 등
- 1) stdio.h
- 운영체제(OS; Operating System)의 정의 및 목적
- 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임
- 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종으로, 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 제공해준다.
- 운영체제의 목적에는 처리 능력 향상, 사용 가능도 향상, 신뢰도 향상, 반환 시간 단축 등이 있다.
- 운영체제의 성능을 평가하는 기준
- 1) 처리 능력(Throughput)
- 일정 시간 내에 시스템이 처리하는 일의 양
- 2) 반환 시간(Turn Around Time)
- 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
- 3) 사용 가능도(Availability)
- 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도
- 4) 신뢰도(Reliability)
- 시스템이 주어진 문제를 정확하게 해결하는 정도
- 1) 처리 능력(Throughput)
- 운영체제의 구성
- 1) 제어 프로그램(Control Program)
- 컴퓨터 전체의 작동 상태 감시, 작업의 순서 지정, 작업에 사용되는 데이터 관리 등의 역할을 수행하는 것
- 구분
- 1. 감시 프로그램(Supervisor Program)
- 제어 프로그램 중 가장 핵심적인 역할을 하는 것으로, 자원의 할당 및 시스템 전체의 작동 상태를 감시하는 프로그램
- 2. 작업 관리 프로그램(Job Management Program)
- 작업이 정상적으로 처리될 수 있도록 작업의 순서와 방법을 관리하는 프로그램
- 3. 데이터 관리 프로그램(Data Management Program)
- 작업에 사용되는 데이터와 파일의 표준적인 처리 및 전송을 관리하는 프로그램
- 1. 감시 프로그램(Supervisor Program)
- 2) 처리 프로그램(Processing Program)
- 제어 프로그램의 지시를 받아 사용자가 요구한 문제를 해결하기 위한 프로그램
- 구분
- 1. 언어 번역 프로그램
- 사용자가 고급언어로 작성한 원시 프로그램을 기계어 형태의 목적 프로그램으로 변환시키는 것으로, 컴파일러, 어셈블러, 인터프리터 등이 있음
- 2. 서비스 프로그램
- 사용자가 컴퓨터를 더욱 효율적으로 사용할 수 있도록 제작된 프로그램
- 분류/병합(Sort/Merge), 유틸리티 프로그램 등이 여기에 해당됨
- 1. 언어 번역 프로그램
- 1) 제어 프로그램(Control Program)
- 운영체제의 기능
- 프로세서(처리기, Processor), 기억장치(주기억장치, 보조기억장치), 입·출력장치, 파일 및 정보 등의 자원을 관리한다.
- 자원을 효율적으로 관리하기 위해 자원의 스케쥴링 기능을 제공한다.
- 사용자와 시스템 간의 편리한 인터페이스를 제공한다.
- 시스템의 각종 하드웨어와 네트워크를 관리·제어한다.
- 데이터를 관리하고, 데이터 및 자원의 공유 기능을 제공한다.
- 시스템의 오류를 검사하고 복구한다.
- 자원 보호 기능을 제공한다
- 입·출력에 대한 보조 기능을 제공한다.
- 가상 계산기 기능을 제공한다.
- Windows
- 1990년대 마이크로소프트(Microsoft) 사가 개발한 운영체제
- 주요 특징
- 1) 그래픽 사용자 인터페이스(GUI;Graphic User Interface)
- 키보드로 명령어를 직접 입력하지 않고, 마우스로 아이콘이나 메뉴를 선택하여 모든 작업을 수행하는 방식
- 2) 선점형 멀티태스킹(Preemptive Multi-Tasking)
- 동시에 여러 개의 프로그램을 실행하는 멀티태스킹을 하면서 운영체제가 각 작업의 CPU 이용 시간을 제어하여 응용 프로그램 실행 중 문제가 발생하면 해당 프로그램을 강제 종료시키고 모든 시스템 자원을 반환하는 방식
- 3) PnP(Plug and Play, 자동 감지 기능)
- 컴퓨터 시스템에 프린터나 사운드 카드 등의 하드웨어를 설치했을 때, 해당 하드웨어를 사용하는 데 필요한 시스템 환경을 운영체제가 자동으로 구성해 주는 기능
- 4) OLE(Object Linking and Embedding)
- 다른 여러 응용 프로그램에서 작성된 문자나 그림 등의 개체(Object)를 현재 작성 중인 문서에 자유롭게 연결(Linking)하거나 삽입(Embedding)하여 편집할 수 있게 하는 기능
- 5) 255자의 긴 파일명
- Windows에서는 파일 이름을 지정할 때 VFAT(Virtual File Allocation Table)을 이용하여 최대 255자까지 지정할 수 있음
- 파일 이름으로는 \ / : * ? " < > | 를 제외한 모든 문자 및 공백을 사용할 수 있으며, 한글의 경우 127자까지 지정할 수 있음
- 6) Single-User 시스템
- 컴퓨터 한 대를 한 사람만이 독점해서 사용함
- 1) 그래픽 사용자 인터페이스(GUI;Graphic User Interface)
- UNIX의 개요 및 특징
- 1960년대 AT&T 벨(Bell) 연구소, MIT, General Electric이 공동 개발한 운영체제
- 시분할 시스템(Time Sharing System)을 위해 설계된 대화식 운영체제로, 소스가 공개된 개방형 시스템(Open System)이다.
- 대부분 C언어로 작성되어 있어 이식성이 높으며 장치, 프로세스 간의 호환성이 높다.
- 크기가 작고 이해하기가 쉽다.
- 많으 네트워킹 기능을 제공하므로 통신망(Network) 관리용 운영체제로 적합하다.
- 트리 구조의 파일 시스템을 갖는다.
- 전문적인 프로그램 개발에 용이하다.
- 다양한 유틸리티 프로그램들이 존재한다.
- 다중 사용자(Multi-User), 다중 작업(Multi-Tasking)을 지원한다.
- 다중 사용자(Multi-User)는 여러 사용자가 동시에 시스템을 사용하는 것
- 다중 작업(Multi-Tasking)은 여러 개의 작업이나 프로그램을 동시에 수행하는 것
- 하나 이상의 작업을 백그라운드에서 수행하므로 여러 작업을 동시에 처리할 수 있다.
- UNIX 시스템의 구성
- 1) 커널(Kernel)
- UNIX의 가장 핵심적인 부분이다.
- 컴퓨터가 부팅될 때 주기억장치에 적재된 후 상주하면서 실행된다.
- 하드웨어를 보호하고, 프로그램과 하드웨어 간의 인터페이스 역할을 담당한다.
- 프로세스(CPU 스케쥴링)관리, 기억장치 관리, 파일 관리, 입·출력 관리, 프로세스간 통신, 데이터 전송 및 변환 등 여러 가지 기능을 수행한다.
- 2) 쉘(Shell)
- 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기
- 시스템과 사용자 간의 인터페이스를 담당한다.
- DOS의 COMMAND, COM과 같은 기능을 수행한다.
- 주기억장치에 상주하지 않고, 명령어가 포함된 파일 형태로 존재하며 보조 기억장치에서 교체 처리가 가능하다.
- 파이프라인 기능을 지원하고 입·츨력 재지정을 통해 출력과 입력의 방향을 변경할 수 있다.
- 공용Sehll(Bourne Shell, C Shell, Korn Shell)이나 사용자 자신이 만든 Shell을 사용할 수 있다.
- 3) Utility Program
- 일반 사용자가 작성한 응용 프로그램을 처리하는 데 사용한다.
- DOS에서의 외부 명령어에 해당된다.
- 유틸리티 프로그램에는 에디터, 컴파일러, 인터프리터, 디버거 등이 있다.
- 1) 커널(Kernel)