일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 유니티
- memorymangement
- Csharp
- Unity
- xml unity
- Flutter
- 플러터폴더
- 메모리배리어
- 플러터
- XR
- 폴더구성
- 포지션 파라미터
- 플러터프로젝트
- 4KUnity
- unity 아이콘 깨짐
- 다트기초
- MemoryBarrier
- OPCUA
- flutter folder
- 네임드 파라미터
- optional prameter
- position parameter
- unity icon
- 싱글톤
- C# memorybarrior
- 유니티최적화
- Unity3d
- named parameter
- Unity 4k 아이콘 깨짐
- c#
- Today
- Total
배 타다 개발자
OS01.컴퓨터 시스템 구조 파악하기 본문
컴퓨터 시스템 구조, Mode bit, Timer, Device Controller, 입출력(I/O)의 수행, 동기식 입출력과 비동기식 입출력, 시스템콜(System call) 알기
CPU
평생 Memory의 인스트럭션을 계속에서 읽어서 실행하는 것을 반복합니다. I/O device에 직접 접근하지 않습니다. 하나의 인스트럭션을 실행하고 나면 라인을 체크합니다. 만약 타이머가 인터럽트를 걸어오면 OS로 넘겨준다.
Memory
CPU의 작업공간
Timer
하드웨어 특정 프로그램이 CPU를 독점하는 것을 막는다.(ex. 무한루프) 설정한 시간이 초과되면 Timer가 인터럽트를 걸어온다.
I/O장치는 OS를 통해서만 명령할 수 있다. Disk 에서 입력값을 받음 Disk controller가 CPU에 인터럽트 -> CPU가 OS로 넘어감 - mode bit
Interrupt Line
1. 하드웨어 인터럽트 Disk의 명령값을 전달할 때 CPU에 인터럽트
2. Trap 소프트웨어가 모드빗을 0을로 바꾸기 위한 인터럽트
Disk
disk controller의 명령을 받아서 일을 실행합니다.
I/O device controller
I/O를 담당하는 작은 CPU라고 볼 수 있습니다.
Mode bit
사용자 프로그램의 잘못된 수행으로 다른 프로그램 및 운영체제에 피해가가지 않도록 하는 역할을 합니다.
0 모니터 모드 / 1 사용자 모드
0 : 운영체제가 CPU를 가지고 있음(OS mode, Canal mode) 모든 인스트럭션 수행가능합니다.
1 : 사용자가 CPU를 가지고 있기 때문데 제한된 인스트럭션만 실행가능한다. 사용자가 프로그램을 CPU로 넘기기전에 1로 설정
I/O의 수행절차
1.사용자 프로그램은 운영체제에게 I/O요청(system call)
2.트랩(소프트웨어 인터럽트)
3.하드웨어 인터럽트(일반적으로 I/O에서 거는 인터럽트)
동기식 입출력(Synchronous I/O)
I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어갑니다.
구현방법 1.
I/O가 끝날 때까지 CPU를 낭비시킵신다. 매시점에 하나의 I/O만 일어날 수있습니다.
구현방법 2.
I/O가 완료될 때까지 해당 프로그램에서 CPU를 뺐습니다. I/O 처리를 기다리는 중에 다른 프로그램에 CPU를 주고, I/O가 완료되면 다시 찾아옵니다.
비동기식(Asynchronous I/O)
입출력이 시작된 후에 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어갑니다.
DMA controller
I/O의 작은 일 하나하나에 모두 인터럽트를 걸면 CPU가 효율적으로 일을 하지 못하기 때문에 Burrder storage에 블록에 해당하는 데이터가 싸이면 메모리에 블럭단위로 직접 전송합니다.
저장장치의 계층구조
-속도(Speed)
위로 갈수록 빠릅니다.
-가격(Cost)
위로 갈수록 비싸고, 용량이 적습니다.
-휘발성(Volatility)
윗달은 휘발성, 아랫단은 휘발성
*휘발성 전원의 on/off에 따른 메모리의 저장유무
프로그램의 실행 방식
Virtual memory
어떤 프로그램을 실행하면 해당 메모리 주소공간이 형성되게 되는데, 이러한 주소공간은 Code, data(변수 등 자료 구조), stack(함수를 호출하고 리턴하는 영역)로 구성이되는데, 이 공간들 중에 당장 필요한 것은 물리적인 메모리에 올리고, 당장 필요하지 않은 것들은 Disk의 Swap area에 둔다.
커널 주소 공간(Kernel address space)
사용자 프로그램이 사용하는 함수
1. 사용자 정의 함수
자신의 프로그램에서 정의한 함수입니다.
2. 라이브러리 함수
자신의 프로그램에서 정의하지 않고 갖다 쓴 함수, 프로그램 실행 파일에 포함되어 있습니다.
3. 커널 함수
내 프로그램에 정의 한 것이 아닙니다. 따라서 운영체제 프로그램의 함수이므로 인터럽션을 걸어서 CPU를 운영체제로 건네주어야 합니다.
커널 함수의 호출 = 시스템 콜
반효경 교수님 OS강의
'Backend' 카테고리의 다른 글
형상 관리 규칙 (0) | 2022.05.12 |
---|---|
OS03. 프로세스 관리 (0) | 2021.01.01 |
OS02. 프로세스개념 이해가기 (0) | 2020.12.30 |
OS0.운영체제(Operating System)란 무엇인가? (0) | 2020.12.28 |
코딩배우기 : 컴퓨터 기초 : 비트, 바이트, 아스키, 유니코드 (0) | 2020.10.19 |