운영체제와 정보기술의 원리 - 책 정리 1일차

2020. 12. 20. 23:54코딩/프로그래밍 기타

- 이 시리즈의 글은 "운영체제와 정보기술의 원리 - 반효경"이란 책을 읽으며 책 내용에 관련하여 필기한 내용입니다 -

본 내용은 운영체제를 간단하게 설명하는 위 책을 또한번 정리하는 것이므로 중요한 내용의 누락이 있을 수 있습니다. 다시 공부하는 경우 책을 다시 읽는 것을 추천합니다. 

 

1일차 (1~3장)

서문

컴퓨터 분야의 지식은 매우 빠르게 생산되고 변해가지만, 컴퓨터 분야의 기본 원리 및 정보기술 분야가 추구하는 핵심 철학은 시대가 지나도 변하지 않는다

컴퓨터분야의 학문은 컴퓨터 자체를 효율적으로 운영하기 위한 학문, 그리고 복잡한 문제를 컴퓨터를 활용해서 효율적으로 풀 수 있는 방법을 제공하기 위한 학문으로 나뉜다.

1장 - 컴퓨터 및 정보기술의 역사

컴퓨터의 이론적 발견과 하드웨어의 역사를 다루고 있다.

역사적인 내용이 대부분이기 때문에 즐기며 읽으며 넘어가자.

 

 

2장 - 윤영체제 개요

운영체제란 하드웨어 바로 윗단에 설치되는 소프트웨어를 말한다

운영체제처럼 규모가 큰 프로그램이 모두 메모리에 올라가면 낭비이므로 일부분만 메모리에 상주하며 사용된다.

메모리에 상주하는 부분을 커널(kernel)이라 부르며 이를 좁은 의미의 운영체제라 부른다.

 

운영체제의 역할

1. 하드웨어를 위한 역할

 - 사용자가 직접 다루기 힘든 각종 하드웨어를 관리

2. 사용자를 위한 역할

 - 편리한 인터페이스를 제공

자원관리자

시스템 보호

 

동지작업을 지원하는지 여부에 따른 분류

단일작업용 운영체제

다중작업용 운영체제(일반적으로 대부분의 컴퓨터)

 - 시분할 시스템

 

다중사용 지원여부에 따른 분류

단일사용자용

다중사용자용

 

처리방식에 따른 분류

일괄처리

시분할처리

실시간운영체제

 

대표적os

윈도우

유닉스 - 리눅스

 

운영체제의 기능

CPU 스케쥴링

선입선출(FCFS) - 말그대로 선입선출

라운드 로빈 - cpu를 할당받아 사용할 수 있는 시간이 고정. 초과시 큐의 맨뒤로 재배치

우선순위 - 우선순위를 할당하여 처리

 

메모리 관리

고정분할방식 - 정해진 크기로 분할 (외부조각, 내부조각 발생)

가변분할방식 - 프로그램의 크기대로 분할 (외부조각 발생)

가상메모리방식 - 현대컴퓨터 대부분. 크기에 상관없이 개별적인 가상메모리공간 보유. 스왑영역 사용. 페이징

 

주변장치

CPU가 필요할 경우 인터럽트 발생

주변장치가 개별적으로 가진 컨트롤러가 인터럽트 발생시켜 보고

 

 

3장 - 컴퓨터 시스템의 동작 원리

인터럽트

인터럽트 발생시 하던일을 잠시 멈추거 인터럽트 코드 수행

 

하드웨어 인터럽트 - 컨트롤러 등 하드웨어장치가 cpu의 인터럽트 라인 세팅. 일반적 인터럽트

소프트웨어 인터럽트 - 소프트웨어가 cpu인터럽트 라인 세팅 , 트랩이라고 불림, 시스템콜/예외사항

 

동기식 입출력

  - 입출력 작업이 완료된 후에 다음 명령 수행 (해당 프로그램만 block하고 다른 프로그램으로 이양)

  - 다른 프로그램에서 같은 메모리에 접근할 수 있기 때문에 장치별로 큐 존재

비동기식 입출력

  - 바로 원래 프로그램에 cpu이양 (데이터와 관련없는 작업 수행)

 

DMA

빈번한 인터럽트는 cpu의 효율적 운용성 저하 -> DMAC를 통한 block단위로 모아서 인터럽트 콜

 

저장장치의 계층구조

빠르고 용량이 작은것 -> 느리고 용량이 큰 것

캐싱 기법 - 상대적으로 용량이 적은 빠른 저장장치를 이용해 느린 저장장치의 성능을 향상시키는 총체적 기법

  - 시간적 지역성 / 공간적 지역성

 

하드웨어 보안

커널모드 / 사용자모드 - 모드비트로 하드웨어적으로 모니터링

 

메모리 보안

프로그램이 메모리의 한영역에 모여있는 단순한 경우 - 기준레지스터 한계레지스터

메모리의 여러영역에 나뉘어 배치 (페이징) - 더 현실적인 메모리 관리법 필요

 

CPU 보안 

한 프로그램이 의도적으로 cpu를 장시간 점유할 가능성 존재 

타이머라는 하드웨어를 통해 일정 시간이 지나면 인터럽트 발생 ->  cpu를 os에 이양

 

시스템 콜을 통한 입출력 수행

디스크에 파일을 쓰거나 읽어오거나 키보드 입력, 출력 등 모두 특권명령인 입출력에 해당

프로그램이 직접수행 불가능 -> 시스템콜을 통해 대행