본문 바로가기

OS

[영남이공대 사이버보안과] 운영체제의 시작

어려운 단어는 하이퍼링크를 사용하여 링커해놓았습니다.


운영체제(Operating System)

컴퓨터 시스템을 효율적으로 관리하여 사용자를 편안하게 한다.

이와 같은 말로 시스템 프로그램(System Program)이 있다.


컴퓨터 시스템의 구성 요소

사용자 - 응용프로그램 - 시스템프로그램 - 운영체제 - 하드웨어

사용자는 응용프로그램을 통해 상위 시스템(시스템 ~)을 사용할 수 있다.


운영체제는 처리 능력을 높이고 반환 시간을 최소화하며 정확하게 일을 하기 위해 만들어졌다.


$#################*@@


1. 부팅 = 부트스트랩(bootstrap)

컴퓨터를 시작하거나 재시작하는 작업

warm 부팅 - 재시작

cold 부팅 - 새로운 시작


부팅 과정 (자세한 과정 참조)

①스위치 ON - ②CPU 초기화 - ③ROM BIOS에서 Bootstrap loader 실행 - ④IO.SYS 실행 - 

 ⑤DOS에 의한 CONFIG.SYS 읽기및 초기화 - ⑥COMMAND.COM에 의한 해독 - 

AUTOEXEC.BAT 명령어 수행


$#################*#^


2. 저장 매체

디스크에 데이터를 기록하거나 읽는 작업을 통해 관리된다.

FAT - 포맷할때 생성되는 파일의 위치 지정을 저장하는 마이크로소프트 회사의 DOS 테이블


FAT32 - 마이크로소프트 회사의 윈도우즈 95 R/2 버전부터 가능, 2TB까지 저장장치 허용

NTFS - 마이크로소프트 회사에서 윈도우즈 NT에 사용하는 파일 시스템, 압축 기능, 대용량 파          티션 가능

HPFS - IBM사의 OS/2 1.2 버전부터 가능, 빠른 접근, 많은 파일 속성, 보안, 다중처리 등 


$#################*%!


3. 사용자 인터페이스 

운영체제에서 사용자가 제어하여 운영체제와 대화할 수 있는 것.

GUI(Graphic User Interface) - 마우스 클릭으로 대화

명령어 인터페이스 - DOS와 같이 키보드로 입력하는 대화


4. 컴퓨터 자원

관리자는 Supervisor or Kernel 이다.

Supervisor는 주기억 장치에 있으면서 자원 추상화(resource abstration)와 자원 공유(resource sharing) 기법을 통해 효율적으로 프로그램을 작성할 수 있다.


5. 파일 관리 - 복사, 백업, 삭제, 새 이름 등

응용프로그램 - 운영체제 - 보조기억장치


6. 프로세스

  • 시분할 시스템(Time-Sharing System)
다중 작업으로 여러명의 사용자가 한 시스템을 사용한다. 그래서 CPU의 시간을 분배한다,
  • 다중 프로그래밍(Multi-programming)
여러 개의 프로그램이 단일 프로세서 상에서 실행되는 것, 동시에 실행되는건 아니다.
CPU가 유휴 상태일때 다른 프로그램을 실행하여 효율적으로 쓸 수 있다.
  • 다중 처리(Multi-processing)
제어 프로그램은 하나이지만 다수의 CPU를 갖고 CPU - 주기억장치 - IO장치 - 버스에 연결된상태로 각 CPU가 일을 분담하기 때문에 하나의 CPU에 문제가 발생하더라도 전체에 영향이 없다. 여기에는 비슷하게 병렬 처리(Parallel-processing)가 있다.


$#################()(


운영체제의 역사

1) 제 1세대 (1940~) : 직접_기계어

2) 제 2세대 (1950~) : 진공관, 코어_메모리, JCL, 일괄_처리_시스템, IO제어_시스템, 기계어

3) 제 3세대 (1965~1980)

Transistor, IC, DISK, Shared_system, Virtual_memory, Multi-programming, Multi-processing, 장치_독립성, Multi_Mode_System, UNIX, Software_Engineering, Time-Sharing System

4) 제 4세대 (1980~1990)

LSI, VLSI, On-line, Micro-processor, Virtual_machine, Database_system, Distribute_data_processing, User_friendly_system, VMS, DOS, Window, Workstation

5) 제 5세대 (1990~2015~)

ULSIJosephson_device, Kalium-Arsenic_device, Distribute_computing, Knowledge_base, Artificial_intelligence, Logic, Human_computer_interaction, Fusion_of_IT


Supervisor Program = Control Program = Nucleus

처리 프로그램의 실행 과정과 사용자/서비스 프로그램을 감시하는 프로그램. 가장 중심적인 프로그램이고 시스템의 모든 동작 상태를 관리한다.

  • 주기억장치의 빈 공간 할당
  • 프로그램 동시 실행 제어, 자원 분배
  • 프로그램 간 통신 제어
  • 입출력/스케줄/오류 처리
  • 인터럽트 처리
유닉스나 리눅스에서는 Kernel이라 부르고 LAN에서는 NetWare 라고 한다.


Job Management Program

사용자 명령을 해독하고 준비, 마무리까지 한다. 연속적인 처리를 담당한다.


Data Management Program

주기억 장치와 보조기억 장치 사이의 자료 전송, 표준 입출력 관리, 파일 처리, 논리적 연결


Communication Management Program

원활한 신호 교환 제어, 외부 연결 시 통신망 제어


Language Translator Program

User's_programming_language -> Source_Program -Translator-> Object_Program

Translator programs : Compiler, Assembler, Interpreter, Cross_compiler ...


Service Program = User_friendly_program

loader 와 library를 관리, 사용을 많이하는 프로그램들을 미리 작성하여 사용자에게 제공

System_Library

- 연계 편집 프로그램: 독립적으로 컴파일된 여러 개의 Object_program을 하나의 형태를 가진 Load_Module로 만든다.

- Macro : 반복되는 명령들을 하나의 새로운 명령으로 정의(Macro_definition)

매크로 정의를 호출하는 Macro_call, 이것을 실제 내용으로 대체하는 Macro_expansion

Open_subroutine: 명령어들이 주프로그램에 삽입되어 분기가 없다.

Closed_subroutine: 주프로그램의 바깥부분, 주프로그램에서 서브루틴으로 이동을 수행하는 분기

- Loader : Object_program 을 입력하여 컴퓨터가 프로그램을 수행할 수 있게 기억 장치에 적재하고 수행을 시작함.

- Loader의 기능

주기억 장소 할당 : 프로그램이 들어갈 장소

linking : 프로그램에서 정의하지 않는 다른 프로그램을 연결시킴

재배치: 해당 기억 장소에 정확히 배정되도록 주소를 조정한다.

Loading : 데이터를 기억장소에 적재한다.


Sort & Merge Program

하나의 레코드를 일정한 필드의 값에 따라 정렬하거나 병합하는 기능

정렬은 오름차순과 내림차순이 있다.


유틸리티 프로그램

여러 사람에게 공통적으로 필요한 분야를 공동으로 사용할 수 있게한 프로그램