일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 소프트웨어공학
- 웹소프트웨어
- css
- NLP
- 자연어처리
- OS
- 언어모델
- 스케줄러
- Linear Algebra
- 데이터분석
- 랩실일기
- Agile
- 벡터
- 파싱테이블
- 객체지향설계
- 애자일
- 데이터베이스
- 정보검색
- DB
- 운영체제
- 836
- C언어
- 오픈소스웹소프트웨어
- 가상메모리
- 컴파일러
- React
- 컴파일
- 프로세스
- 파싱
- 클래스
Archives
- Today
- Total
observe_db
[OS] 2. 하드웨어 및 소프트웨어(2) 본문
2. 운영체제 지원 하드웨어 요소
프로시저 실행모드(executiion mode)
- 특권 명령어(privileged instruction): 사용자 시스템에서는 사용할 수 없고 관리 프로그램만 사용가능한 명령
- ex) 시스템파일 수정, 파일 소유자 변경, 디스크 quota 조정, 데몬 시작 및 종료
- 프로세서에서 복수의 실행모드 제공
- intel i360 이후 4개 모드 제공
- 사용자모드(User mode, user state, problem state)
- 특권 명령어 제외 명령어 실행 가능
- 커널모드(Kernel mode, supervisor state)
- 특권 명령어 및 특권 자언(privileged resource) 사용 가능
커널모드 전환
원인
- 인터럽트(interrupt; hardware interrupt)
- 키보드 입력, 타이머, 마우스 등 외부 주변장치에서 하드웨어적으로 event 발생
- interrupt vector table에 특정 번호에 대응하는 interrupt handler의 주소 저장
- instruction 실행 사이에 인터럽트 요청 여부 확인 및 인터럽트 처리기 호출
- 우선 순위가 높은 인터럽트에 의한 인터럽트 처리기의 인터럽트 가능
- 트랩(trap; software interrupt)
- 프로그램 직접 호출, system call
- 직접 명령어를 사용하여 호출(80x86 CPU에서 int 명령어로 지정 번호 인터럽트 발생)
- 예외상황(exception)
- 프로그램 실행 중 비정상 상황에서 발생
- 0으로 나누기, page fault, overflow등
- set_trap_gate()의 경우 처리기를 벡터 테이블에 후킹(hooking)
- +실행 프로그램의 종료
인터럽트 서비스 루틴(interrupt service routine, ISV) 실행과정
- 커널 모드 전환
- 레지스터 내용 저장
- 서비스 처리기 실행
메모리 보호(memory protection): 프로세서가 다른 프로세스나 운영체제 영역을 접근하지 못하도록 하는 하드웨어적 기능 제공
타이머(timer): 시간간격 타이머는 일정 간격으로 타이머 인터럽트 실행
클럭(clock): time-of-day clock, 현 시점의 시각 및 날짜 확인
부트스트래핑(bootstrapping): 초기 운영체제 구성요소를 메모리에 적재하는 것
- BIOS 실행(Basic Input/Output System)
- 전원이 켜지면 컴퓨터에 의해 맨 처음 실행되는 부팅 펌웨어
- BIOS 칩에 저장
- 하드웨어 점검(POST: Power On Self Test) 및 CPU 레지스터들과 디바이스 초기화 실행
- 보조기억장치의 부트 섹터(boot sector)로부터 부트스트래핑 코드를 메모리에 적재
- 부트스트래핑 코드 실행
- 보조기억장치에서 운영체제 코드를 메모리에 적재
- 운영체제 커널 실행
버퍼(buffer)
- 입출력 전송하는 중에 데이터를 일시적으로 보관하는 저장공간
- 용도
- 속도차이가 있는 장치간 통신
- 비동기적(asynchronous)으로 처리할 데이터 저장
- 비동기적 signal 전달
스풀링(spooling; simultaneous peripheral operations on-line)
- 프로세스(process)와 저속 입출력장치에 디스크등을 사용하여 버퍼링(buffering)을 구현하는 것
- 프로세스가 주변장치의 service request 준비 상태에 상관없이 서비스 요청을 할 수 있게 함
- CPU에 비해 주변장치의 처리 속도가 느려서 발생하는 대기시간을 줄이기 위한 고안
'학교 공부 > 운영체제(OS)(3-1)' 카테고리의 다른 글
[OS] 3. 프로세스(Process)(1) (0) | 2023.03.29 |
---|---|
[OS] 2. 하드웨어와 소프트웨어(3) (0) | 2023.03.21 |
[OS] 2. 하드웨어 및 소프트웨어(1) (0) | 2023.03.15 |
[OS] 1. 운영체제 소개(2) (0) | 2023.03.14 |
[OS] 1. 운영체제 소개(1) (0) | 2023.03.10 |
Comments