[정보처리산업기사] 응용 SW 기초 기술 활용

Updated:

운영체제의 개념 1

운영체제(OS; Operating System)의 정의

시스템 S/W(CPU관리 프로그램, 메모리 관리 프로그램, 관리적 요소 프로그램 ..) <-> 응용 S/W (게임,카톡 …)

  • 운영체제는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용하는 환경 제공

  • 자원을 관리한다.
    • H/W : CPU(중앙처리장치=프로세서), 메모리, I/O(입출력 장치), 주변장치..
    • S/W : System Software , 프로그램들 ..
      • 프로세서 : 중앙처리장치 (CPU)
      • 프로세스 : 실행중인 프로그램 ( 메모리에 올라간 프로그램들)
  • 사용자의 편의성 제공

  • Memory :
    • ROM : 비휘발성 메모리(전원 차단 -> 날라가지않음, 초기)
      1. ROM-BIOS : 기본 입출력 시스템
    • RAM : 휘발성 메모리(전원 차단 -> 날라감, 작업공간, 현재)
      1. bootstrapping Loader : 디스크(보조기억장치)에서 메모리(주기억장치)로 올리는 작업
  • Windows , UNIX, LINUX
    • Windows : close
    • UNIX, LINUX : open
  • 병원에 비유
    • 컴퓨터 -> 병원
    • 프로세스 -> 환자
    • 메모리 -> 병원의 크기
    • CPU -> 의사
    • OS => ?악덕병원장
  • 단일 프로그램 : 1개의 cpu를 가지고 1개의 프로그램만 실행
  • 다중 프로그램 : 1개의 cpu를 가지고 여러개의 프로그램을 실행
    • 프로세스 스케쥴링 : 여러개의 프로그램을 실행하는 계획 성능 평가요소 : (처리량↑, 신뢰성↑, 반환시간↓, 가용도(사용 가능도)↑)
  • 운영체제의 시스템의 성능 평가 척도
  • (1) 처리량 ↑
  • (2) 반환시간 ↓
  • (3) 신뢰도 ↑
  • (4) 이용가능도 ↑
  • (5) 병목현상 ↓

운영체제의 기능분류 2 (2022-02-09)

  • 제어프로그램(효율성↑)
    • 감시 프로그램 : 핵심,증추,감독,지시
    • 데이터관리 프로그램 : IOCS(Open Close, Read, Write, Block, deBlock)
      • open, close : 보조기억장치 파일과 주기억장치의 파일의 논리적인 연결을 해줌
      • Read, Write : 파일 저장, 파일 읽기
      • Block, deBlock :
    • 작업제어 프로그램 : 스케쥴 관리
  • 처리프로그램(사용자편의성↑)
    • 언어번역 프로그램 : 컴파일러, 인터프로그램
    • 서비스 프로그램
    • 문제처리 프로그램

다중 프로그래밍 방식에서의 시간(Time)

  1. 응답시간(Response time) : 작업이 처음 실행되기까지 걸린시간 = 반응시간
  2. 대기시간(Waiting time) : 실제 작업을 CPU가 실행하지 않은 시간들을 더한시간
  3. 실행시간(Running time) : 실제 CPU가 작업을 처리하는 시간
  4. 반환시간(Turn around time) : 실행시간 + 대기시간 (작업이 완료될 때까지 걸린시간)
  5. 시간 간극(Time Slice) : 프로세스가 자원을 사용하기 위해 운영체제에게 할당받은 시간 (=시간 할당량)
  6. 유휴 시간(Idle time) : CPU가 노는 시간

다중 시스템의 용어 정리

  1. 다중 프로그래밍(Multi Programming) :하나의 CPU로 구성된 시스템 에서 여러개의 프로그램을 처리하는 방식, 처리량을 최대로
  2. 다중 프로세싱(Multi Processing, 강결합 시스템, 메모리 공유, 병렬처리, OS 1개, 프로세스간 통신 : 공유메모리)
  3. 다중컴퓨터(Multi Computer, 약결함 시스템, 메모리 독립적, 분산처리, OS 여러개)
  4. 다중 태스킹(Multi Tasking) : =다중프로그래밍과 동일 (사용자 관점)

운영체제의 계층 구조

  1. 사용자
  2. 응용프로그램
  3. 유틸리티
  4. 명령어 해석기(Shell)
  5. 제어 프로그램(Kernel)
  6. 기계어
  7. 마이크로 프로그램
  8. 하드웨어
  • 운영체제는 4~7단계

운영체제 관리 계층 위치

  1. 파일 관리 계층
  2. 주변장치 관리 계층
  3. 프로세스(Process) 관리 계층
  4. 기억장치 관리 계층
  5. 프로세서(CPU) 관리 계층

운영체제의 종류별 특징 (2022-02-13)

1. Unix의 특징

  • 대부분 C언어(C 90%, 어셈블리언어 10%), 이식성이 우수
  • Open Source
  • Multi-User / Multi-Tasking
  • 하나 이상의 작업을 백그라운드에서 수행
  • 커널의 크기가 비교적 작아서 이식성이 뛰어남

2. Unix의 기본 구성

  • 커널(Kernel)
    • 핵심 루틴, 하드웨어 보호, 사용자 서비스
    • 프로세스 관리, 기억장치 관리, 파일 관리, 입출력 관리
  • 쉘(Shell)
    • 시스템과 사용자 간의 인터페이스 담당.
    • 사용자의 명령어를 입력받아 시스템 기능을 수행하는 명령 해석기
    • 사용자와 커널사이에서 중재자
  • 유틸리티(Utility)
    • 문서 편집기 , 데이터베이스 관리, 컴파일러, 네트워크

3. Unix 파일 시스템의 구조

  • Boot 블록
    • 부팅시 필요한 코드를 저장하는 블록
  • 슈퍼 블록
    • 전체 파일시스템에 정보를 저장함
  • 실린더 그룹 정보 블록
    • 사용 블록의 정보, 통계적 정보 기록
  • I-node 블록
    • 파일의 정보를 기록한, 파일 정보 테이블이 기록
  • 데이터 블록

  • (1) 목록구조
  • Unix 명령어 $ls -l 을 입력하면 다음과 같은 목록 출력
-rwxr-xr-- 2 peter(소유자) staff(그룹) 3542(파일의 크기) 8월 31일 10:00 aaash(파일명)

-rwxrwxrwx

 chmod 777 abc.txt
  • (2) 복사와 링크의 차이점
    • cp는 복사하는 명령어, ln은 파일이나 디렉토리를 링크거는것
    • ln에는 hard link와 symbolic link(바로가기)가 있다
$ cp A.txt B.txt
$ ln C.txt D.txt
$ ln -s E.txt F.txt

1. Linux의 특징

  • 리눅스는 워크스테이션이나 개인용컴퓨터에서 사용
  • 핵심 커널부분은 유닉스와 다르게 작성되어있다
  • 무료, 소스코드 무료 공개
  • 임의의 프로세스 선점, 우선순의
  • 모놀리틱 커널 사용
  • NTFS, 저널링파일 시스템 IFFS 지원(리눅스 로그 구조 파일 시스템)

운영체제의 기본 명령어 (2022-02-13)

쉘(Shell)의 주요기능

쉘은 컴퓨터 내부를 관리하는 Kernel과 사용자 간을 연결하는 커맨드 창

UNIX 주요 명령어 - 프로세스 관련 명령어

- fork : 새로운 프로세스를 생성, 복제하는 기능
- exit : 프로세스 종료
- getpid : 프로세스명, 그룹명, 부프로세스의 정보를 얻음
- exec : 새로운 프로그램을 수행시키기위한 시스템 호출
- sleep n 
- ps : 현재 실행중인 작업 프로세스를 출력
- who : 운영체제를 쓰고잇는 사용자 리스트
- & : 백그라운드 
- | : 결과 값을 다음 명령으로 연결
- chmod : 권한설정
- grep : 특정 문자열을 찾음
- find : 특정 파일을 찾음
- fsck : 파일 시스템을 일관성 있게 검사, 대화식으로 복구 명령
- mkfs : 파일 시스템을 구성
- > : 앞의 명령 결과를 파일로 저장
- mount : 새로운 파일 시스템을 서브 디렉터리에 연결할때 사용
- ls : 현재 디렉토리 파일목록
- cat : 파일 내부 내용 보기
- cp : 복사 명령어
- ln : 링크 걸기
- mkdir(md) : 폴더 생성
- chdir(cd) : 디렉토리 이동
- rmdir : 디렉토리 제거

프로세스 (2022-02-14)

프로세스 : 실행중인 프로그램(메모리에 적재되어 CPU에 의해 실행과정에 있을때)

프로세서 = CPU

프로세스의 정의

  • CPU에 의해 현재 실행되고 있는 프로그램
  • PCB(Process Control Block)의 존재로서 명시되는 것
  • 디스패치(준비상태 -> 실행상태)가 가능한 단위
  • 비동기적 행위를 일으키는
  • 실행 중인 프로시저의 제어 궤적

프로세스 상태 전이도

  1. (준비(Ready) , 실행(Run) , 대기(Block) )상태
    • 준비 -> 실행 디스패치 (실행 -> 준비 가능)
    • 실행 -> 대기 I/O 요구 (대기 -> 실행 불가능)
    • 대기 -> 준비 wake-up (준비 -> 대기 불가능)

인터럽트 처리(Interrupt Processing) (2022-02-14)

인터럽트 정의

  • 프로세스 수행중 다른 프로세스를 수행하기위해 현재 수행중인 프로세스를 중단하는 상태
  • 인터럽트는 입출력 연산, 하드웨어 실패, 프로그램 오류 등에 의해 발생함.

인터럽트 처리를 위한 작업순서

  1. 인터럽트 발생 운영체제 제어권
  2. 운영체제는 현재 프로세스 상태를 저장
  3. 운영체제는 인터럽트의 발생 원인을 찾아 지정된 루틴으로 제어권을 넘겨줌
  4. 인터럽트 처리 루틴이 인터럽트 처리
  5. 인터럽트 걸렸던 이전 프로세스 상태로 복구
  6. 인터럽트 걸렸던 시점 이후부터 프로세스 실행

인터럽트의 종류

  • SCV(SuperVisor Call) 인터럽트
    • 프로세스 관리호출, 기억장치 할당 오퍼레이터와의 대화 시에 발생하는 인터럽트
  • 입출력(I/O) 인터럽트
    • 프린트나 디스크 저장시 입출력 채널확인, 준비, 할당, 완료 시
  • 외부(Extern) 인터럽트
    • 인터럽트 시계에 의해서 해당 프로세스가 종료된다. 이때 발생하는 인터럽트가 외부 인터럽트
  • 재시작(Restart) 인터럽트
    • 재부팅 하는경우(Ctrl + Alt + Del)
  • 프로그램 검사 인터럽트
    • 오버플로어(Overflow)나 언더플로어(Underflow)일 경우 분모가 0인 나눗셈을 처리하는 경우
  • 기계 검사 인터럽트
    • 컴퓨터 시스템의 고장으로 발생

인터럽트 특징

  • 컴퓨터 시스템의 비상사태의 처리하는
  • 메모리 보호 구역에 접근을 시도하는 경우 인터럽트 발생
  • 예기치 않은 일들에 대해 중단없이 계속적으로 수행할 수 있도록 하는 기능
  • CPU 상태를 보관

인터럽트 동기

  • 동기 인터럽트(Synchronous Interrupt) : 하나의 명령어 종료후 인터럽트 발생
  • 비동기 인터럽트(Asynchronous Interrupt) : CPU클릭 시그널과 상관없이 생성하는 인터럽트

(1) PCB(Process Control Block) 정의

PCB 테이블은 프로세스들의 현재 상태를 기록한 정보 테이블 각 프로세스들의 주기억장치에 적재된 기억장치 위치 혹은 포인터 항목으로 기록됨

(2) PCB 항목

  • (1) 프로세스 식별자
  • (2) 프로세스 현재 상태
  • (3) 프로그램 카운터(계수기)
  • (4) 프로세스 우선순위
  • (5) 프로세스가 적재된 기억장치 부분을 가리키는 포인터
  • (6) 프로세스에 할당된 자원을 가리키는 포인터
  • (7) 중앙처리장치(CPU, 처리기) 레지스터 정보
  • (8) CPU의 각종 레지스터 상태를 가리키는 포인터
  • (9) 계정 정보(시간 할당량)
  • (10) 기억장치 관리정보
  • (11) 입출력 정보
  • (12) 부모 프로세스를 가리키는 포인터
  • (13) 자식 프로세스를 가리키는 포인터

시간할당량에 따른 문맥교환수, 인터럽트 횟수, 오버헤드

시간할당량이 ↓ : 문맥교환수 ↑, 인터럽트 횟수 ↑, 오버헤드(간접부담비용) ↑ 시간할당량이 ↑ : 문맥교환수 ↓, 인터럽트 횟수 ↓, 오버헤드 ↓

시간할당량 : 여러개의 프로세스가 CPU를 차지하는 시간간격

프로세스 스케쥴링(Process Scheduling) (2022-02-15)

프로세스 스케쥴링의 정의

  • CPU나 자원을 효과적이며 생산성있게 사용하기 위한 소프트웨어적 계획

프로세스 스케쥴링의 종류

  • 장기(상위) 스케쥴링 : Job Scheduling, Long Term
  • 중기(중위) 스케쥴링 : 어떤 프로세스들이 CPU를 할당 받을것인지 결정
  • 단기(하위) 스케쥴링 : Processing Scheduling, short Term

프로세스 스케쥴링의 원칙

  • 모든 프로세스들에게 공정하게 배정
  • 단위 시간당 최대의 처리
  • 처리 응답시간이 신속
  • 오버헤드를 최소화해야한다.

프로세스 스케쥴링의 성능 평가 기준

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

비선점형 방식과 선점형 방식

  • 비 선점형 : 빼앗을수없다. 중단시킬수 없다., 예측 용이
    • FIFO, SJF, HRN, 우선순위, 기한부

    • FIFO(FCFS) : 입력된 순으로 처리, 평균 반환시간 = 평균 실행시간 + 평균 대기시간
    • SJF(Short Job First) : 짧은 작업 먼저
    • HRN(Highest Respons-ratio Next) : 대기시간 + 서비스시간 / 서비스시간
  • 선점형 : 빼앗을수 있다. 중단시킬수 있다. , 예측 용이하지않다.
    • RR, SRT, MFQ , MLQ
    • (대화형, 시간분할에 적합)
    • RR(Round-Robin , 시간분할) : 시간할당량이크면 FIFO와 동일
    • SRT(Short Remaining Time) : 남아있는 짧은 작업먼저
    • MFQ(Multi level Feedback Queue) : 짧은 작업우선, I/O 우선
    • MLQ(Multi Level Queue) : 선점, 비선점의 방식

임계구역(Critical Section, 위협지구) (2022-02-16)

임계구역의 정의

다중 프로그래밍 기법에서 두 개 이상의 프로세스가 운영될 때 서로 공유하게 되는 자원(CPU, 메모리, 공유 변수, 프린터)를 말한다. 임계구역으로 프로세스간의 통신을 하는 매개변수 역할을 할 수도 있다.

임계구역의 원칙

  • 두 개 이상의 프로세스가 동시에 사용할 수 없다.
  • 순서를 지키면서 신속하게 사용한다.
  • 하나의 프로세스가 독점하게 해서는 안된다.

상호배제 (Mutual Exclusion)

상호배제의 정의

임계구역을 어느 시점에서 단지 한 개의 프로세스만이 사용할 수 있도록하며, 다른 프로세스가 현재 사용중인 임계구역에 대하여 접근하려고 할 때 이를 금지하는 행위를 상호배제라고 함.

상호배제 알고리즘

  • 잠금 : 말 그대로 잠궈버리는 것(하나의 파일을 쓰면 접근불가)
  • 인터럽트 봉쇄 : 접근하려는 행위 자체를 막아버림
  • 엄격한 교대 : 서로 교대로 한번씩만 접근

바쁜대기(Busy Wait)

  • 잠금, 인터럽트 봉쇄, 엄격한 교대 등은 임계구역을 동시에 접근하지 못하게 할 수 있다. 하지만 임계구역을 접근하기 위해 다른프로세스는 계속적으로 접근 시도를 하게되는 바쁜 대기 현상이 나타난다.

잠자기와 깨우기(Sleep and Wakeup)

  • 상호배제 과정에서 바쁜대기를 제거하기위한 기초 알고리즘이다.

세마포어(Semaphore)

  • 상호배제의 원리를 보장하는 알고리즘이다.
  • 임계구역에 대해 각각의 프로세스들의 접근을 제어하고 프로세스 사이의 동기를 유지
  • 잠자기와 깨우기의 연산을 이용하며, 공유 자원의 수를 나타내는 변수를 세마포어 변수 S라고 한다.
  • 세마포어 변수는 일반적으로 정수형 변수를 사용

  • 이진형 세마포어 : 0과 1값, 한개의 공유자원을 상호배제
  • 계수형 세마포어 : 0과 양의정수, 여러개의 공유자원을 상호배제

모니터(Monitor)

  • 모니터는 세마포어를 실제 구현한 프로그램
  • 모니터는 순차적으로만 사용할수 있는 공유자원 혹은 공유자원 그룹을 할당하는데 사용

모니터의 특징

  • 정보 은폐

교착상태(DeadLock) (2022-02-16)

  • 복수의 프로세스(Process)가 가능하지 못한 상태를 무한정 기다리고 있는 상태

교착상태 필요조건

  • 상호배제
    • 프로세스들은 필요로 하는 자원에 대해 베타적인 통제권을 갖음
  • 비선점
    • 프로세스가 소유하고 있는 자원은 다른 프로세스에 의해 선점될 수 없다(뺐을수 없다.)
  • 점유와 대기
    • 프로세스는 할당된 자원을 가진 상테에서 다른 자원을 기다린다.
  • 환형대기 (교착상태에 대한 충분조건)
    • 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 갖고 있다.

교착상태 해결방안

  • 교착상태 예방(Prevention)
  • 교착상태 회피(Avoidance)
  • 교착상태 발견(Detection)
  • 교착상태 회복(Recovery)

기억장치의 계층과 사용방식 (2022-02-16)

  1. CPU(레지스터)
  2. 캐시 기억장치
  3. 주기억장치
  4. 보조기억장치

기억장치 계층 간의 관련 기술

  • 가상기억장치(Virtual Memory) : 보조기억장치인 하드디스 일부를 주기억장치럼 사용
  • 가상 디스크(Virtual Disk) : 주 기억장치 일부를 보조기억장치인 하드디스크처럼 사용하는 기술
  • 인터리빙(Interleaving) : 엑세스 속도를 빠르게 하기위해 주기억장치를 독립된 기억장치 모듈로 나눔
  • 사이클 스틸링(Cycle Stealing) : CPU가 입출력 전용 프로세서인 채널(Channel)에게 주기억장치의 접근을 양보하여 입출력의 효율을 높이기 위한 방법

Leave a comment