

이중모드
이중모드란 운영체제가 자기자신을 다른 시스템 구성요소로부터 보호하기 위한 장치로 유저모드와 커널모드를 만든다.
모드비트를 통해서 어떻게 보호할 수 있는지
- 입출력 보호 모드
IN/OUT 명령 - IN명령마우스 커서, 키보드 입력과 같은 입력이다. OUT은 파일 출력, 파일저장과 같은 명령이다.
운영체제에 요청하면 out 명령어를 발생시켜 작업을 실행할 수 있도록 한다. 하드디스크의 접근까지도 운영체제가 막아준다.
- 메모리 보호
접근하려는 메모리의 주소가 실제 접근할 권한이 있는지 없는지 확인. (메모리→cpu : 주소버스/ cpu→ 메모리 : 데이터버스)
- CPU 보호
- 특정 프로그램을 통해 무한루프를 돌게되면 다른 프로그램들이 실행해야할 타임을 받을 수 없어 cpu를 점유하게된다. 따라서 이것을 보호하기 위해 타이머를 설정하여 정해진 시간에 cpu에게 인터럽트를 건다. 이를 통해 인터럽트 서비스루틴이 실행된다. 인터럽트 서비스루틴을 통해 운영체제가 권한을 다른 프로세스에게 넘겨줄 수 있게된다.
운영체제구조
app - 한글 word ppt mp3 gaem
os - shell - 응용프로그램과의 소통
kernel - 프로세스 매니지먼트, 메모리 매니지먼트, 파일 매니지먼트, I/O 매니지먼트+드라이버 , 네트워크 매니지먼트, 보호 매니지먼트
h/w - cpu memory 프린터 마우스 키보드
운영체제 서비스
운영체제는 개발자에게 프로그램 실행 환경을 제공하고, 프로그램 및 사용자에게 서비스를 제공한다. 소프트웨어와 유저가 안전하고 효울적으로 하드웨어를 사용할 수 있게 해주는것
프로그래머에게 편리함을 제공하는 기능
- 사용자 인터페이스 - shell 부분으로 명령라인(CLI), 그래픽 사용자 인터페이스(GUI)
- 프로그램 실행 - 명령어를 입력하거나 마우스를 이용하여 실행
- → 메모리에 저장되어 있던 프로그램이 메모리에 적재된다→해당 프로그램 실행 → 정상적 또는 비정상적 방식으로 종료
- I/O 작업 - 실행 중인 프로그램은 입출력 요구시, 입출력 실행 수단을 제공해야한다.
- 파일 시스템 조작 - 파일이나 디렉토리를 읽고, 쓰고, 만들고 삭제하며, 탐색하고 파일 정보를 나열하고, 권한 관리를 한다.
- 통신 - 동일한 컴퓨터 내의 프로세스간에는 공유 메모리, 메세지 전달을 관리하고 네트워크로 연결된 컴퓨터 내의 프로세스간은 다른방식으로 관리
- 오류감지 - 프로그램을 실행하는데 CPU, 메모리, 하드웨어, I/O 장치에서 다양한 오류가 발생한다면 운영체제는 인터럽트 방식을 사용하여 오류를 감지하고 바로잡음 따라서 각 유형의 오류에 대해 OS는 정확하고 일관성 있는 컴퓨팅을 보장해야함
시스템 자체의 효율을 위한 기능
- 자원 할당 - 자원을 여러 사용자와 프로그램에 적절하게 할당해야함. cpu 사이클, 메인 메모리, 파일 저장장치, I/O 장치 등 다양한 유형의 리소스를 가지고있다.
- 회계 - 어떤 사용자가 어떤 종류의 자원을 얼마나 많이 사용하는지 추적한다.
- 보호 및 보안 - 듀얼모드를 통해 cpu,메모리 보호한다. 다중 사용자 또는 네트워크 컴퓨터 시스템에 저장된 정보의 소유자는 해당 정보를 사용을 제어 할 수 있어야하며, 프로세스가 자신의 영역이외에 다른 영역에 침범하면 안된다. 보호는 시스템 리소스에 대한 모든 접근이 통제되도록 보장해야한다.
사용자 인터페이스
명령 해석기(CLI)로 직접 명령 입력 가능 -명령어 해석기는 운영체제마다 다양하게 존재,
- 사용자로부터 명령을 입력 받아 실행한다. 커널에 구현하게 되는데 이때 명령어를 기계어로 번역하여 커널에 전달하는 역할인 셸을 사용한다
System call
소프트웨어가 운영체제가 제공하는 서비스를 받기 위해서는 시스템 콜을 통해 호출해야한다. OS가 알려준 방법대로 일처리를 해야만한다.따라서 시스템 콜을 직접 호출하지 않고 고수준의 API를 사용한다.
ex. 소스파일을 데스티네이션파일에 복사하려고할때 소스파일의 이름을 획득해야한다 프롬프트에 적고(cp aa.txt) 그 스크린에 적혀있는것을 input한다. 아웃풋파일을 가져오고 키보드로부터 입력받고 그 파일을 오픈한다. 만약 존재하지않는다면 종료. 아웃풋파일을 오픈하려고할때 없다면 새로만듬.
루프 - 한줄읽어서 한줄붙이고 반복. 파일이 끝날때까지, 완료했다면 메세지를 스크린에 보냄
일반적으로 각 시스템콜에는 번호가 매겨져 있다. 시스템 콜 인터페이스는 숫자에 따라 색인 된 테이블을 유지한다. os 커널에서 요청된 시스템 콜을 호출하며 종료 상태 및 반환 값을 반환한다.
개발자는 시스템 콜의 구현에 대해 알 필요가 없다. API를 준수하고 호출 결과 OS가 어떤 작업을 수행하는지 이해하기만 하면된다.
시스템콜은 일종의 함수로 매개변수와 리턴 타입을 가진다. 따라서 매개변수 정보의 정확한 종류와 양은 OS와 시스템콜에 따라 다르다.
OS에 매개변수를 전달하는 일반적인 3가지 방법
- 가장 간단한 형태 : 레지스터에 매개변수 전달
- 메모리의 블록 또는 테이블에 실제 매개변수 저장, 그 블록의 주소를 레지스터에 저장하여 매개변수로 전달한다.⭐
- 스텍에 넣어지고 운영체제가 꺼내는 방법 → 블록 및 스택 방법은 전달되는 매개변수의 개수 또는 길이를 제한하지 않음
시스템콜의 유형
프로세스(기계를 작동시키는것) 제어
- 프로세스 매지니먼트
프로세스 생성, 종료 , 프로세스 끝내기, 중지, 적재 실행, 프로세스 속성 획득 및 설정
- 커널모드에서만 가능하다. 일정 시간 동안 기다리기, 사건을 기다리기, 사건을 알림, 메모리 할당, 메모리 반환
파일 관리
파일 생성, 삭제, 파일열기, 닫기, 읽기, 쓰기, 위치 변경, 파일 속성 획득 및 설정
장치관리
장치요청, 장치 해제, 읽기, 쓰기, 접근 위치 재조정, 장치 속성 획득 및 설정, 논리적으로 부착 및 분리
정보 유지 관리
커널모드에서 관리자만 바꿀 수 있음
현재 시간 및 날짜 획득 및 설정, 시스템 날짜 획득 및 설정, 프로세스, 파일, 및 속성 획득 및 설정
통신
통신 연결 생성, 삭제, 메시지 전달 모델을 사용한다면 호스트 이름 또는 프로세스 이름을 명시하여 메시지 송신 또는 수신
클라이언트에서 서버로, 공유
메모리 모델의 경우에는 메모리 영역 생성 및 접근 권한 획득, 상태 정보 전송, 원격 장치의 부착 및 분리
시스템 프로그램
- 프로그램 개발 및 실행을 편리하게 할 수 있는 환경을 제공, 내가 설치하지않아도 운영체제가 가지고있는 프로그램
- ex. 메모장, 컴파일러, 네트워크 상태를 점검할 수 있는 것
시스템 부트
- 시스템이 전력이 공급되면 명령 레지스터는 특정 메모리 위치를 가리키고, 실행된다. ROM 또는 EEPROM에 저장된 작은 크기의 코드로
- 하드웨어(기계) 상태 진단
- CPU 레지스터, RAM, 장치 제어기 등 시스템 초기화
- 디스크에 있는 부트 블록(boot block) 로드 및 시작
- 모든 부트 프로그램이 로드되면, 파일 시스템에서 커널 탐색
- 커널을 로드 후 실행: 시스템 실행
모드비트를 통해서 어떻게 보호할 수 있는지
'CS' 카테고리의 다른 글
| chapter05-2 세마포/교착상태 (0) | 2023.05.05 |
|---|---|
| chapter05. 프로세스 / 임계구역 / (0) | 2023.05.05 |
| chapter04. Threads (1) | 2023.01.14 |
| chapter03. 프로세스 개념 및 스케줄러 (0) | 2023.01.13 |
| chapter01. (0) | 2023.01.12 |