일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Classification
- 분류
- 회귀
- ChatGPT
- OpenAI
- LG Aimers 4th
- LLM
- deep learning
- 해커톤
- AI
- Machine Learning
- regression
- gpt
- 머신러닝
- supervised learning
- GPT-4
- PCA
- LG Aimers
- 오블완
- 티스토리챌린지
- LG
- 지도학습
- 딥러닝
Archives
- Today
- Total
SYDev
[운영체제] Exercise 1 본문
경희대학교 허선영 교수님의 운영체제 수업을 기반으로 정리한 글입니다.
Part 1: Overview
Goals of this Exercise
- What operating systems do
- How operating systems interact with user programs and computer hardware?
Going Deeper!
- Software Interrupt and System Call
- On Unix and Linux systems, software interrupt(trap) -> system calls를 요청하기 위해 사용됨
- int -> x86 processors에서 software interrupt를 호출하기 위해 사용하는 assebly language instruction
- ex) int $0x80 -> 16진수 형태의 interrupt number를 호출
Warning 1: syscall instruction
x86 assembly language에서, system calls를 호출하는 다른 명령어인 syscall 존재
-> syscall은 int 명령어가 사용하는 parameter register와 다른 register를 사용
- int $0x08 실행
- interrupt vector를 참조 -> CPU는 system_call() function이 위치한 entry point로 점프
- syscall table 참조 -> system_call() function은 system_call handling을 위한 특정한 함수를 호출 (ex: sys_read)
- system call을 처리한 이후, user process는 작업을 계속 진행 -> system call은 synchronous하게 다뤄짐
What is the difference between Trap and Interrupt?
Trap
- user process 내부에서 발생한 exception에 의해 발생
- synchronous interrupt
- invalid memory access, division by zero, breakpoint, ...
- Trap은 OS를 user mode에서 kernel mode로 변경 -> OS는 특정 actions를 진행하고 process에 대한 control을 return함
- trap handler는 synchronous하게 작동 -> os가 trap을 detect -> user process 중지 -> trap handling이 끝나면 작동
Defference Between Trap and InterruptTrap- hardware device에서 발생- Synchronous process- software device에 의해서만 발생- user program instruction에 의해서만 발생- interrupt에 포함되는 개념Interrupt- user program에서 발생- Asynchronous process- hardware/software device 모두에서 발생 가능 -> application이 특정 os service를 발견했거나 종료됐을 때, software interrupts 발생- OS/user program instruction 모두에서 발생 가능
그렇다면 trap과 software interrupt는 무슨 차이점을 가지는가?? ->
Trap은 Software Interrupt의 일종
Software interrupt는 크게 Fault, Trap, Abort로 나눠짐
1. Falut
- software에 문제가 있는 경우 -> ex) invalid memory access
- segmentation Fault error가 대표적
2. Trap
- "일부러"interrupt를 발생시키는 경우 -> ex) system call과 같이 interrupt를 발생시켜 os를 호출하는 경우
- interrupt의 결과를 기다리기 위해 Synchronous해야함
3.Abort
- 프로그램을 강제 종료하는 등의 interrupt -> fault보다 더 강제성 있음
Reference: https://www.baeldung.com/cs/os-trap-vs-interrupt
Task 1
Task 1.1: von Neumann Architecture
von Neumann Architecture
- CPU - arithmetic logic units & control unit으로 구성
- Memory - data & instruction 영역으로 구성
- CPU와 Memory를 분리하여 명령어를 따로 저장하는 '프로그램 내장 방식'이 핵심!!! -> CPU와 Memory를 분리하고, '연산 작업'을 program memory에 순서대로 저장한 후, 해당 연산 작업이 필요해질 때 저장해놓은 program을 찾아 data 영역으로 꺼내온 뒤 입력값과 함께 전달해 CPU에 전달해 연산 작업 진행
what is program counter?
- a special register that point the address of the next instruction <-> 연산 결과를 임시로 저장하는 general register
Task 1.2: Stroage Hierarchy
Storage Hierarchy
- Architecture
- Registers
- Cache
- Main memory - DRAM
- Nonvolatile memory - SSD
- hard-disk drivers - HDD
- magnetic tapes
- storage capacity - access time
- register에 가까울수록 stoage capacity가 작아지고, access time이 빨라짐
- magnetic tapes에 가가울수록 storage capacity가 커지고, access time이 느려짐
- on-chip memory -> registers & cache는 CPU 상에 존재하기 때문에 접근 속도가 매우 빠름
Task 1.3: Interrupts
- (1) Interrupt Request Line(IRL) or Interrupt Request Pin(IRP)
- CPU 하단에 위치한 pin(wire)
- CPU에는 1~2개의 IRP가 존재 -> multiple I/O devices와 상호작용하기 위해 Programmable Interrupt Controller(PIC)와 연결
- cpu senses after executing every instruction - > interrupt는 상시로 확인해야 함
- CPU가 interrupt request line에서 signal을 감지 -> interrupt number의 index에 해당하는 interrupt vector를 탐색(interrupt vector table은 memory에 위치) -> interrupt vector가 가리키는 interrupt service routine으로 jump
- (2) Interrupt Handler(Service) Routine
- interrupt service routine의 주소를 가리킴
- (3) Interrupt Vector
- (4) Device Controller
- Device Controller가 CPU에 interrupt 요청 -> pic -> IRP(interrupt request pin) -> CPU -> Interrupt Service Routine -> ISR이 interrupt를 해결
Task 2: True of False?
(1) Computer Architecture
- In a von Neumann computer system,
memory knows what data is for-> X- von Neumann architecture에서는 memory와 cpu가 분리되어 있음 -> memory에는 data가 저장만 돼있고, 이를 사용하는 것은 cpu
- Cache can be shared by multiple in the CPU -> O
- Multiple cores in the CPU can execute different instructions at the same time -> O -> core는 각각 pc를 가짐
- CPU with different ISAs(cpu가 처리할 수 있는 명령어의 집합)
can executethe smae instructions -> X -> ex) intel과 arm programs는 서로 명령어 호환 X - Both the kernel and user programs reside in main memory -> O
(2) Interrupt and System Call
- Interrupts are used throughout modern operating systems to handle asynchronous events -> O
- Device drivers are hardware components embedded
in I/O devices-> X -> device driver는 os 내부에 존재하는 software - The interrupt vector differs according to the architecture of the processor. -> O
- Programs can run in different operating systems if CPUs use the same ISA. -> X -> os가 다르면 system call api가 달라 호환이 어렵다.
- When a system call is called, transition from user mode to kernel mode occurs. -> O
'3학년 2학기 전공 > 운영체제' 카테고리의 다른 글
[운영체제] Chapter 5. CPU Scheduling (5) | 2024.10.09 |
---|---|
[운영체제] Chapter 4. Thread & Concurrency (1) | 2024.10.01 |
[운영체제] Chapter 3. Processes (4) | 2024.09.24 |
[운영체제] Chapter 2. Operating System Structures (0) | 2024.09.10 |
[운영체제] Chapter 1. Introduction (0) | 2024.09.10 |