It is What it is
로그인
It is What it is
로그인
[운영체제] 서론
.
·
2021년 6월 25일
팔로우
1
운영체제
1
운영체제
목록 보기
1/6
목표
컴퓨터 시스템의 일반적인 구성과 인터럽트 역할
현대 다중 처리기 컴퓨터 시스템의 구성요소
사용자 모드에서 커널 모드로의 전환
다양한 컴퓨팅 환경에서의 운영체제의 사용
운영체제의 역할과 정의
컴퓨터 구조
컴퓨터 구조는 4가지로 나뉘어진다.
하드웨어 : 중앙처리장치 (CPU), 메모리 및 입출력 장치로 구성 되어 기본 계산용 자원을 제공
운영체제 : 다양한 응용프로그램 간의 하드웨어 사용을 제어하고 조정
응용 프로그램 : 사용자의 계산 문제를 해결하기 위해 자원을 어떻게 사용될지 정의
사용자
운영체제
운영체제 : 컴퓨터 하드웨어를 관리하는 소프트웨어
컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중개자 역할을 함
운영체제의 목표는 사용자가 컴퓨터 프로그램을 편리하게 이용하는 것
역할
사용자 관점 : 사용자의 편의를 위해 설계되고 자원의 이용은 신경 X
시스템 관점 : 자원을 적절하게 할당, 입출력 장치와 사용자 프로그램을 제어
정의
운영체제는 자원을 제어하고 할당함
보편적인 정의는 없으나 일반적으로 커널, 시스템 프로그램, 응용 프로그램이 포함
커널 : 항상 실행되는 프로그램
시스템 프로그램 : 시스템 실행 중에 시스템을 관리
응용 프로그램 : 시스템 작동과 관련 없는 모든 프로그램
미들웨어 : 응용 프로그램 개발을 쉽게 하고 기능을 제공
컴퓨터 시스템의 구성
컴퓨터 시스템
하나 이상의 CPU와 구성요소와 공유 메모리 사이의 액세스를 제공하는 공통 버스를 통해 연결된 여러 장치 컨트롤러로 구성
각 장치 컨트롤러는 특정 장치를 담당
각 장치 컨트롤러는 로컬 버퍼와 특수 목적 레지스터 집합을 지님
장치 컨트롤러는 제어하는 주변 장치와 로컬 버퍼간의 데이터를 이동
장치 컨트롤러마다 장치 드라이버가 있음
인터럽트
개요
하드웨어는 언제든지 시스템 버스를 통해 CPU에 신호를 보내 인터럽트를 발생 시킬 수 있음
시스템 버스는 주요 구성 요소 사이의 주요 통신 경로
소프트웨어는 시스템콜을 통해 인터럽트 발생
인터럽트는 적절한 서비스 루틴으로 제어를 전달
인터럽트 벡터(배열)는 서비스 루틴들의 주소를 지님
인터럽트가 발생됬을 때 따른 인터럽트가 동시에 발생 불가능
CPU가 인터럽트 됬을 때
하고 있는 것을 멈춤
고정된 위치로 실행을 옮김
고정된 위치는 해당 인터럽트를 위한 서비스 루틴이 위치한 시작 주소를 지님
인터럽트 서비스 루틴 실행
인터럽트 됬던 연산을 재개
구현
CPU 하드웨어에 인터럽트 요청 라인 존재
하나의 명령어의 실행을 완료할 때마다 CPU가 이 선을 감지
CPU가 컨트롤러가 인터럽트 요청 라인에 신호를 보낸것을 감지하면 인터럽트 번호를 읽어 인터럽트 벡터의 인덱스로 사용
인터럽트 핸들러 루틴으로 점프
해당 인덱스와 관련된 주소에서 실행을 시작
인터럽트 처리기는 작업 중 변경 될 상태를 저장, 인터럽트 원인 확인, 처리 수행, 상태 복원 수행
모든 처리를 마친 후 CPU를 인터럽트 전 실행 상태로 되돌림
장치 컨트롤러 : 인터럽트 요청라인에 신호를 선언 시켜 인터럽트를 발생시킴
CPU : 인터럽트를 포착 후 인터럽트 핸들러로 디스패치
핸들러 : 장치를 서비스 한 후 인터럽트를 지움
인터럽트 구동 방식의 입출력 사이클
CPU가 장치 드라이버 입출력 개시 후 하나의 명령이 끝날 때마다 인터럽트 요청 라인 확인
I/O 컨트롤러가 입출력 개시
입력 준비 완료, 출력 완료, 에러가 발생하면 인터럽트 신호 발생
CPU는 인터럽트를 전달 받으면 제어를 인터럽트 핸들러에 넘김
인터럽트 핸들러가 데이터를 처리하고 인터럽트에서 복귀
CPU는 인터럽트로 중단된 작업의 처리를 재개
저장장치 구조
메인 메모리 : CPU가 직접 접근 할 수 있는 메모리
DRAM - Dynamic Random Access Memory 기법으로 구현
휘발성이라 전원이 꺼지거나 손실되면 내용이 손실됨
보조 저장장치 : 대량의 데이터를 영구히 보존 - 하드디스크
2차 저장장치라 불림, 휘발성 X, 대량의 용량 제공
3차 저장장치 : 광학 디스크, 자기테이프
컴퓨터의 명령-실행 사이클
폰 노이만 구조 시스템에서 명령-실행 사이클은 다음과 같다.
메모리부터 명령을 인출해 명령 레지스터에 저장
명령을 해독 후 필요하면 피연산자를 메모리부터 인출하여 내부 레지스터에 저장
피연산자에 대해 명령을 실행 후 결과를 다시 메모리에 저장
메모리들의 상호작용은 적재(load), 저장(store) 명령을 통해 이루어짐
적재 : 메인 메모리부터 CPU 내부 레지스터로 한 바이트 또는 워드를 옮김
저장 : 레지스터 내용을 메인 메모리로 옮김
부트스트랩
부트스트랩 프로그램 : 컴퓨터 전원을 키면 가장 먼저 실행
펌웨어라 부르는 ROM, EEPROM에 저장되어 있음
OS 커널을 실행 시킴
저장장치 우선순위
저장장치는 속도,비용,휘발성에 따라 다음과 같은 우선순위를 지님
캐싱
정보는 통상 어떤 저장장치에 보관
정보가 사용됨에 따라 더 빠른 장치인 캐시에 일시적으로 복사
어떤 정보가 필요할 때 캐시에 있는지 확인 후 있으면 캐시로부터 직접 사용
없으면 메인 메모리에서 정보를 가져와 사용 후 캐시에 넣음
캐시 크기와 관리는 중요한 설계 문제
입출력 구조
시스템 : 범용 버스를 통해 데이터를 교환하는 여러가지 장치로 구성된 범용 컴퓨터
입출력 : 장치,메모리,로컬 버퍼사이의 데이터 교환
장치 : 키보드, 모니터, 마우스, 디스크 등
입출력 컴퓨터 작업
입출력 작업을 시작하기 위해 장치 드라이버는 장치 컨트롤러의 적절한 레지스터에 값을 적재
장치 컨트롤러는 레지스터의 내용을 검사 후 수행할 작업을 결정
컨트롤러는 장치에서 로컬 버퍼로 데이터 전송을 시작
데이터 전송이 완료되면 장치 컨트롤러는 드라이버에게 작업 완료를 알림
드라이버는 읽기 요청이면 데이터 또는 포인터를 반환하며 운영체제에 제어를 넘김
다른 작업일 경우 "쓰기 완료" 처럼 상태 정보를 넘김
컨트롤러가 장치 드라이버에게 작업을 완료했다고 인터럽트를 통해 알림
동기, 비동기
동기 입출력 : 입출력 작업을 시작한 후 입출력 작업이 끝난 후 제어를 돌려 받음
Wait 명령을 통해 CPU를 대기 시킴
비동기 입출력 : 입출력이 시작한 후 사용자 프로그램에게 바로 제어를 넘김
유저 프로세스는 동기 입출력을 사용하고 OS는 비동기 입출력 사용
DMA (직접 메모리 엑세스)
장치에 대한 버퍼, 포인터, 입출력 카운터를 세팅
CPU의 개입 없이 장치 컨트롤러가 자신의 버퍼 저장장치에 바로 데이터 블록을 보냄
일반적으로는 바이트 당 인터럽트가 발생하지만 DMA를 사용 시 블록당 하나의 인터럽트만 발생
장치 컨트롤러가 전송을 할 때 CPU는 다른 작업을 수행
컴퓨터 시스템 구조
이전에는 단일 처리기 시스템을 사용
현재에는 다중 처리기 시스템이 발전하고 많이 쓰이고 있음
단일 처리기 시스템
Single Processor System
코어 : 명령을 실행하고 로컬로 데이터를 저장하기 위한 레지스터를 포함하는 구성요소
단일 처리 코어를 가진 범용 CPU가 하나만 있으면 단인 프로세서 시스템
다중 처리기 시스템
Multiprocessor System
단일 코어 CPU가 있는 두개 이상의 프로세서 존재
프로세서는 컴퓨터 버스, 클록, 메모리, 주변 장치 공유
장점 : 처리량 증가
현대에는 컴퓨팅 코어가 단일 칩에 상주하는 다중 코어 시스템 포함
하나의 처리기에 코어가 여러개 존재하며 L1 캐시, L2 캐시 존재
클러스터형 시스템
다중 처리기 시스템과 비슷하지만 다중 시스템이 같이 작동한다는 점이 다름
일반적으로 클러스터 컴퓨터는 저장장치를 공유하고 LAN 같은 상호 연결망을 통해 연결
높은 가용성을 제공해 하나의 컴퓨터 시스템이 고장 나더라도 서비스 제공
스토리지 전용 네트워크(SAN)을 통해 저장장치 공유
비대칭형 클러스터링 : 한 컴퓨터가 긴급 대기 모드 상태 유지
대칭형 클러스터링 : 둘 이상의 호스트들이 서로 응용프로그램을 실행하고 감시
운영체제의 작동
운영체제는 프로그램이 실행되는 환경을 제공
부트스트랩 프로그램은 주로 컴퓨터 하드웨어 내에 펌웨어로 저장되어 있음
컴퓨터를 키면 부트스트랩 프로그램이 실행
CPU 레지스터, 장치 컨트롤러, 메모리 내용을 모두 시스템 측면에서 초기화
운영체제 커널을 찾아 메모리에 적재
커널모드가 실행되면 인터럽트가 발생할 때 까지 대기
트랩 : 사용자 프로그램의 특정 요청 때문에 발생하는 소프트웨어 생성 인터럽트
트랩은 시스템 콜이라는 특수 연산을 실행하여 요청됨
다중프로그래밍과 다중태스킹
다중프로그래밍 (MultiProgramming)
일반적으로 하나의 프로그램은 CPU나 I/O 장치를 항상 바쁘게 유지 불가능
또한 사용자들은 일반적으로 두가지 이상의 프로그램을 한 번에 실행
CPU가 항상 한 개는 실행할 수 있도록 프로그램을 구성
프로세스 : 실행중인 프로그램
운영체제는 여러 프로세스를 동시에 메모리에 유지
I/O 작업처럼 대기를 해야 할 때 따른 프로세스 실행
다중 태스킹 (multitasking)
다중 프로그래밍의 논리적 확장
CPU는 여러 프로세스를 전환하며 사용자에게 빠른 응답 시간을 제공
가상 메모리를 통해 일부만 메모리에 적재된 프로세스의 실행을 허용
논리적 메모리를 물리 메모리부터 분리
이중모드와 다중모드 운용
사용자 모드, 커널 모드로 나뉘어짐
모드 비트라는 비트가 모드를 나타냄 ( 커널모드(0), 사용자모드(1) )
이중모드를 통해 OS와 다른 소프트웨어 자원을 보호
커널모드와 사용자모드의 변경
시스템 부트 시, 하드웨어는 커널 모드에서 시작
운영체제가 적재 후 사용자 모드에서 사용자 프로세스가 실행
트랩, 인터럽트가 발생할 때마다 하드웨어는 사용자 모드를 커널 모드로 전환
운영체제가 컴퓨터의 제어를 얻을 때마다 커널 모드로 변경
사용자 프로그램으로 제어를 넘기기전에 사용자 모드로 변경
타이머
운영체제가 CPU에 대한 제어를 유지할 수 있도록 보장
사용자 프로그래밍 무한 루프에 빠질 경우를 대비
고정 타이머 : 일정 시간 이후에 인터럽트 발생
가변 타이머 : OS가 계수기 값을 감소시켜 0이 되면 인터럽트 발생
사용자에게 제어를 넘기기전에 OS는 타이머가 인터럽트를 할 수 있도록 설정 되었는지 확인
자원 관리
프로세스 관리
프로세스 : 실행중인 프로그램
프로그램은 수동적 개체, 프로세스는 능동적 개체
프로세스는 CPU, 메모리, I/O, 파일 등 여러가지 자원을 필요로 함
프로세스를 종료하면 재사용 가능한 자월을 회수
프로세스는 다음 수행할 명령을 지정하는 프로그램 카운터(PC)를 지님
멀티 쓰레드 프로세스는 프로세스당 하나의 PC를 지님
메모리 관리
메인 메모리 : CPU, 입출력 장치에 의해 공유되는 빠른 접근이 가능한 데이터 저장소
명령어 인출 사이클 동안 메인 메모리부터 명령을 읽음
자료 인출 사이클 동안 메인 메모리부터 데이터를 읽고 씀
CPU가 디스크에서 가져온 데이터를 처리하기 위해서는 데이터가 먼저 메인 메모리로 전송되어야 함
프로그램이 수행되기 위해서는 절대 주소로 매핑되고 메모리에 적재되어야 함
프로그램이 종료되면 프로그램이 차지하던 메모리 공간이 가용공간으로 선언 후 다음 프로그램이 적재됨
메모리 관리 기법 : CPU 활용성, 컴퓨터 자원을 최적화
메모리의 어느 부분이 사용되고 있는지, 어느 프로세스에 의해 사용되는지 추적
필요에 따라 메모리 공간을 할당하고 회수
어떤 프로세스를 메모리에 적재하고 제거할 것인가를 결정
저장 장치 관리
OS는 저장장치의 물리적 특성을 추상화하여 논리적인 저장 단위인 파일 정의
파일을 물리적 매체로 매핑하여 저장장치를 통해 이들 파일에 접근
파일은 통상 디렉토리들로 구성
파일 시스템에 대한 접근 권한 관리
대용량 저장장치 관리
모든 데이터를 메인 메모리에 저장할 수 없음
메인 메모리를 백업하기 위해 보조저장장치를 제공
보조 저장장치, 3차 저장장치 사용
캐시 관리
저장장치의 계층 구조에서 각 수준 간의 저장 정보 이동은 하드웨어 설계나 운영체제에 따라 명시적 또는 묵시적으로 이루어짐
캐시로부터 CPU, 레지스터로위 데이터 전송은 하드웨어적으로 이루어짐
디스크, 메모리 간의 데이터 전송은 운영체제에 의해 이루어짐
입출력 시스템 관리
운영체제의 목적 중의 하나는 사용자에게 특정 하드웨어 장치의 특성을 숨기는 것
UNIX에서 입출력 장치의 특성은 입출력 서브시스템에 의해 숨겨져 있음
입출력 시스템은 다음과 같이 구성
버퍼링, 캐싱, 스풀링을 포함한 메모리 관리 구성 요소
일반적인 장치 드라이버 인터페이스
특정 하드웨어 장치들을 위한 드라이버
스풀링 : 컴퓨터 시스템에서 중앙처리장치와 입출력장치가 독립적으로 동작하도록 함으로써 중앙처리장치에 비해 주변장치의 처리속도가 느려서 발생하는 대기시간을 줄이기 위해 고안된 기법
보안과 보호
보호(Protection) : 컴퓨터 시스템이 정의한 자원에 대해 프로그램,프로세스, 사용자들의 접근을 제어하는 기법
보안(Security) : 내부 혹은 외부의 공격으로부터 시스템을 방어
사용자별로 권한을 달리 주어 컴퓨터를 보호함
분산 시스템
분산 시스템 : 물리적으로 떨어져 있는 컴퓨터들의 집합
사용자가 시스템 내의 다양한 자원에 연결할 수 있도록 네트워크로 연결
근거리 통신망(LAN), 광역 통신망(WAN), 도시권 통신망(MAN)
요약
운영체제의 주요 3가지 목표 : 프로세스 관리, 환경 관리, 자원 관리
컴퓨터의 4가지 요소 : 하드웨어, OS, 프로그램, 사용자
OS는 인터럽트를 통해 작동
인터럽트는 하드웨어와 소프트웨어로부터 OS로 알리는 알림
인터럽트는 인터럽트 서비스루틴에 제어를 넘김
입출력은 장치와 로컬 버퍼 사이의 데이터 교환
컴퓨터는 계층적인 저장장치를 지님
레지스터, 캐시, 메모리, 2차 저장장치, 3차 저장장치
OS는 상호작용하는 계산을 위해 멀티태스킹 환경을 제공
OS는 이중모드를 통해 스스로를 지킴 : 사용자모드, 커널모드
.
지금부터 공부하고 개발한것들을 꾸준하게 기록하자.
팔로우
다음 포스트
[운영체제] 운영체제 구조
0개의 댓글
댓글 작성
관련 채용 정보