[목차]
1. 소프트웨어 분류
2. 기출 및 예상 문제 풀이
3. 운영체제 종류
4. 기출 및 예상 문제 풀이
[소프트웨어 분류]
1. 시스템 소프트웨어 (System Software)
1-1) 정의
: 시스템 전체를 작동시키는 프로그램 (시스템 소프트웨어 = 운영체제 + 언어 번역 프로그램 등)
: 응용 소프트웨어를 실행하기 위한 플랫폼을 제공하고 컴퓨터 하드웨어를 동작, 접근할 수 있도록
설계된 컴퓨터 소프트웨어
: 시스템 소프트웨어는 사용자의 문제를 직접 해결하는 응용 소프트웨어와는 반대의 개념
1-2) 종류 (암기!)
: 언어 번역 프로그램 - 어셈블러, 컴파일러, 인터프리터
: 메모리에 프로그램을 적재하는 프로그램 - 로더
: 반복되는 부분을 한 개의 이름으로 묶어 사용 - 매크로 프로세서
2. 응용 소프트웨어 (Application Software)
: 넓은 의미에서는 운영 체제에서 실행되는 모든 소프트웨어를 뜻함 (워드, 액셀, 브라우저, 컴파일러 등)
: 좁은 의미에서는 OS 위에서 사용자가 직접 사용하게 되는 소프트웨어들을 뜻함 (컴파일러 제외)
: 간단하게 줄여서 애플리케이션이라고 하며 더 줄여서 앱(App)이라고 부르기도 함 (통신용, 그래픽, 미디어 등)
3. 유틸리티 소프트웨어 (Utility Software)
: 컴퓨터를 분석, 구성, 최적화 또는 유지 관리하도록 설계된 시스템 소프트웨어
: 컴퓨터 동작에 필수적이지 않지만 컴퓨터를 이용하는 주 목적에 대한 부차적인 일부 특정 작업을 수행하는 소프트웨어
: 일반 사용자에게 이익이 되는 작업을 직접 수행하기 위한 응용 소프트웨어와 달리 컴퓨터 인프라(Computer Infrastructure, 컴퓨터 시스템)를 지원하는 데 사용됨
: 즉, 컴퓨터 하드웨어, 운영체제, 응용 소프트웨어를 관리하는 데 도움을 주도록 설계된 프로그램
: 유틸리티 소프트웨어는 대부분 주 운영체제에 오랫동안 통합 되었음
: 서비스 프로그램, 유틸리티 루틴(Utility Routine)이라고도 함 (디스크 조각 모음, 알집, 백신프로그램 등)
[기출 및 예상 문제 풀이]
[운영체제 종류]
1. Windows
1-1) 특징
: 마이크로소프트사에서 1995년에 windows95를 발표한 이후 98, ME, XP, 7, 8, 10, 11
등의 버전으로 지속 출시 중
: GUI 방식
: 마이크로소프트사만이 수정 및 배포(유료)
: 고객 지원이 체계적이라는 장점 있음
: 버그 등의 문제가 발견되었을 시 수정에 시간이 걸린다는 단점과, 이런 시간적 차이를 악용하는 해커들로 인해
유닉스 계열(리눅스)의 운영체제에 비해 보안이 취약하다는 문제점이 지속적으로 제기되는 중
1-2) 선점형 멀티태스킹 (Preemptive Multi-Tasking, 양보)
: 우선 순위가 높은 다른 프로세스가 할당된 CPU를 강제로 빼앗을 수 있는(양보) 방법
- 실시간 처리, 대화식 시 분할 처리(단점: 오버헤드 발생 가능성 있음)
1-3) PnP(Plug and Play, 자동 감지 기능)
: 컴퓨터에 주변기기를 추가할 때 별도의 물리적인 설정이 없어도 설치만 하면 그대로 사용할 수 있도록 하는 기능
: 꽂아서 바로 사용 (USB 등)
1-4) OLE (Object Link Embedding)
: 어떤 응용 프로그램에서 만든 내용을 객체(개체)라고 보고, 그 객체(Object)를 다른 프로그램에 연결(Linking)
하거나 삽입(Embedding)하여 자료를 공유하는 방식
: 예) 포토샵 그림 > 워드 등에서 활용
1-5) Single-User 시스템
: 컴퓨터 한 대를 한 사람만이 독점해 사용
* 서버용 운영체제(UNIX, LINUX, Windows NT)는 하나의 컴퓨터에 여러 명이 사용하는 Multi-User 시스템
2. UNIX
: 1960년대 말에 미국 AT&T 벨(Bell) 연구소에서 개발한 운영체제
: 워크스테이션/서버용으로 나왔지만 데스크탑이나 임베디드용으로도 쓰임
: UNIX는 컴퓨터 역사상 가장 중요한 운영체제라고 할 수 있는데, 처음으로 어셈블리가 아닌
C 언어로 커널까지 작성된 운영체제이기 때문
: C언어로 개발된 덕에 다른 하드웨어로 이식하기가 쉬웠음
: 멀티태스킹 기술을 도입하여 여러 사용자가 동시에 사용할 수 있게 되었음
: 유닉스 이후 시스템 프로그래밍 언어의 업계표준이 된 C언어는 원래 유닉스를 프로그래밍하기 위해 개발된 것
2-1) 특징
: 대부분 C언어로 작성 - 높은 이식성과 확장성
: 다양한 네트워킹 기능
: 대화식 시분할 운영체제
: 다중 사용자 시스템 (Multi-User system)
: 다중 태스킹(작업) 운영체제 - 동시에 여러 가지 작업을 수행
: 파일 소유자, 그룹 및 그 외 다른 사람들로부터 사용자를 구분하여 파일을 보호
: 파일 시스템 - 계층(트리) 구조
: 사용자 위주의 시스템 명령어 제공
: 사용자는 하나 이상의 작업을 백그라운드에서 수행할 수 있어 여러 개의 작업을 병행 처리할 수 있음
: 개방형 시스템 : 구조 공개, 제품의 공급업자가 많음, 라이센스 비용이 쌈
* 문제 :
다음 중 유닉스의 특징으로 맞지 않는 것은?
> 유닉스는 단일 작업용, stand alone(독립형, 자립형, 고립형 시스템) 방식이다 >> X
2-2) UNIX 시스템의 구성 (20년 2회, 4회 필기 기출)
ㄱ. 커널 (Kernel)
: UNIX의 가장 핵심적인 부분
: 주기억장치에 적재된 후 상주하면서 실행
: 프로세스, 기억장치, 파일 입출력 관리
: 프로세스간 통신, 데이터 전송 및 변환 등 여러가지 기능 수행
: 파일 시스템의 접근 권한을 처리
: 자원 활용도를 높이기 위해 스케쥴링
ㄴ. 쉘 (Shell)
: 명령어 해석기
: 시스템과 사용자 간의 인터페이스 담당
3. 리눅스 (Linux)
: 안정성과 신뢰도를 높이는 운영체제로 인정받으면서 인터넷에 소스가 공개된 무료 프로그램
: 누구나 사용할 수 있고 전문가들 중심으로 보급되어 왔음(전문가가 언제든 개선 가능)
: 개발하는 업체 및 개발자들로부터 수시로 업그레이드 중
: 오픈소스를 주장하는 소프트웨어 공유 운동 단체인 GNU 프로젝트의 전복적 지원과 각국의 유능한
프로그래머의 참여 하에 전 세계 서버용 OS의 27%를 점유할 만큼 성장 함
* 오픈소스 : 일종의 프로그램 설계도를 무료로 공개하고 배포하는 것
: 핀란드 컴공과 리누스 토발즈(Linus Torvalds)가 만든 컴퓨터 운영체제
: 리누스 토발즈가 헬싱키대학에 재학 중이던 시절, 학교 수업 중 교육용 유닉스인 미닉스(Minix)를 배우면서
보다 나은 미닉스를 만들어보기 위해 취미 삼아 만들기 시작함
: 형편상 고가의 장비를 소유할 수 없었기에 대형 컴퓨터에서 사용하는 유닉스의 소스 코드를 수정해
개인 PC에서도 사용할 수 있는 공개 운영체제로 개발하고 자신의 이름을 따 'Linux 0.0.1'버전으로 명명함
4. LINUX / UNIX 특징
4-1) 차이점
5. MAC OS (매킨토시)
5-1) 특징
: 유닉스 기반으로 만들어져 애플사의 제품군에서만 사용이 가능한 GUI 기반 운영체제
: 1999년 OS X로 업데이트 하였고 이후 클라이언트 버전, 서버 제품 등으로 제품군을 확대해 2017년
OS X 시에라, 2018년 모하비 등을 지속적으로 발표 중
: 매킨토시 OS는 프로그램을 카피하고 삭제함으로서 install과 uninstall 과정을 단순화
: 드라이버 설치 또한 OS의 확장 폴더에 넣고 재부팅을 하면 인식되어 매우 간단함
6. 모바일 운영체제 (20년 2회 실기 기출)
6-1) 안드로이드 (Android)
: 리눅스 커널 위에서 동작하며 자바 및 코틀린 언어로 앱을 만들어 작동하는 운영체제
: 구글이 공개한 개방형 모바일 운영체제
: 안드로이드의 모든 소스 코드를 오픈 소스로 배포하고 있어 프로그램을 독자적으로 개발해 탑재할 수 있고
구글 플레이를 통해 판매 가능
6-2) iOS
: OS X를 기반으로 만들어져 있고, 멀티 터치를 비롯한 휴대 전화 및 스마트폰에는 없었던 독자적인 사용자 인터페이스로 구현한 운영체제
: 애플의 모바일 운영체제
: 처음 공개 당시 사용자가 새발한 애플리케이션의 추가가 허용되지 않았으나, 2008년 이후 애플의 앱 스토어를 통해 자유롭게 앱을 공개하고 판매할 수 있게 됨
[기출 및 예상 문제 풀이]
자원 관리는 커널에서 하는 것!
'정보보안공부 > 정보처리기사' 카테고리의 다른 글
11. 프로그래밍 언어 활용 - 메모리관리기법(2) (0) | 2022.01.20 |
---|---|
10. 프로그래밍 언어 활용 - 메모리관리기법 (0) | 2022.01.18 |
8. 프로그래밍 언어 활용 - 운영체제 기초활용(OS) (0) | 2022.01.17 |
7. 프로그래밍 언어 활용 - 라이브러리 특성 활용&기출풀이 (0) | 2022.01.17 |
6. 프로그래밍 언어 활용 - 언어 특성 활용(2) PHP (0) | 2022.01.13 |