일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Race condition
- polymorphism
- STCF
- frequency-domain spectrum analysis
- MAC
- Unity #Indie Game
- SNR
- Frequency Response
- 운영체제
- pdlc
- 메카님
- link layer
- convolution
- MLFQ
- ret2libc
- DSP
- RBAC
- Security
- 게임 개발
- 배경 그림
- 유스케이스
- sampling theory
- DP
- AINCAA
- 유니티
- 게임개발
- linear difference equation
- dirty cow
- dtft
- stride
- Today
- Total
다양한 기록
운영체제 개요 본문
운영체제는 ~
- 하드웨어와 어플리케이션, 유저 간 인터페이스를 제공
- 하드웨어와 소프트웨어 자원을 관리
- 컴퓨터 프로그램을 위한 일반적인 서비스 제공
OS는 자원을 관리함 == 자원 관리자
리소스: 하드웨어(메모리, CPU 등), 소프트웨어(스택, 힙, 페이지 테이블), 파일, 폴더, 데이터(정보)
1. 자원관리자
2. 앱이 잘 돌아갈 수 있는 기능 제공
OS Services (= Functions of OS)
1. Program Execution
- CPU 스케줄링, 프로세스 상태 전이 : 레디 / 러닝 / 웨이팅
- execve(), fork(), wait(), exit()
2. Memory Management
- mmap(), mprotect(), madvise()
3. I/O Operation
- ioctl(), mknod()
4. 파일 시스템 관리
- creat(), open(), read(), write(), unlink()
5. IPC와 같은 커뮤니케이션
- Shared memory, Message passing, 세마포어
- pipe(), flock(), futex()
6. Error detection & handling
7. 프로세스 관리
8. 메인 메모리 관리
9. 세컨더리 스토리지 관리
10. 파일 관리
11. I/O 시스템 관리
12. 네트워킹
13. 커맨드 라인 인터프리터 시스템 .. shell, CLI, GUI
Multi-user OS
멀티 유저 OS는 컴퓨터 자원을 유저에게 시간을 쪼개서 나눠줌
타임 쉐어링 => 라운드 로빈
형평성에 좋음
* I/O 작업은 인터럽트로 신호주게 하고 그 때는 CPU 다른 일 함
자원 할당
동시, 병렬적으로 러닝 중인 멀티플 유저나 멀티플 태스크에 자원을 할당해야 함
* 메인 메모리에 프로세스가 두 개 이상 있으면 멀티플 태스크
OS는 정확하고 효율적이고 쓰기 쉽도록 시스템이 운영되도록 할 책임이 있음
=> 쉐어링과 프로텍션의 개념
쉐어링을 하면 효율적이지만, 보호를 해야하는 경우도 분명히 있음
Accoounting
육하원칙에 따라 무슨 자원을 사용했는지 추적 .. 로깅
클라우드에서는 과금을 위해서
보안에서는 침입 탐지를 위해 사용
Sharing
- 멀티 유저
- 멀티 태스킹: 둘 이상의 프로세스가 동시적으로 작동해야 함
- 멀티 프로세싱: 2개 이상의 CPU에서 프로세스가 런
- 멀티스레딩: 한 프로스램의 다른 부분이 동시적으로 작동할 수 있도록 함
멀티 프로세싱
CPU나 코어가 여러 개인 것을 의미
물리적인 병렬 처리를 의미
SMP == 시메트릭 멀티 프로세싱
실질적으로 병렬 처리가 되는 것이고 멀티 태스킹은 CPU가 하나여도 가능하다는게 차이
멀티 스레딩
한 프로세스 내에서 여러 개의 제어 흐름을 만드는 것
* 스레드의 후보: 함수
Protection
가치있는 자원에 대해 접근을 통제하는 메커니즘
- 정보를 보호하기 위해 OS가 지원하는 메커니즘
쉐어링 vs 프로텍션
모든 오브젝트(자원)은 쉐어링과 프로텍션이 둘 다 필요
- 프로세스
- 파일 (데이터, 정보)
- 메모리, 디스크
- I/O 디바이스
- 네트워크 디바이스
....
분리된 시간 상에서 함수들이 실행되는 경우
=> 보호 필요 없음
격리는 주체들이 물리적으로 분리된 상태에서 작동함을 의미
공유할 수 있는 건 완전히 공유해야 하고,
하지 않은 거라면 완전히 분리해야 함 (public, private)
많이 쓰는 방법: 접근을 제한하면서 공유
프로세스와 파일
프로세스
- 주체
- 실행 단위
- PID, PCB
* 프로그램은 힙이나 스택이 없음
파일
- 객체
- 정보 저장 / 처리 단위
- inode number, inode
'운영체제보안' 카테고리의 다른 글
Trusted OS (0) | 2024.10.12 |
---|---|
Threats and Security Issues related to OS (0) | 2024.10.12 |
Security Goals (0) | 2024.10.12 |
Protection & Security (0) | 2024.10.12 |
Protection in OS (0) | 2024.10.12 |