IT 지식/운영체제

컴퓨터의 구조 (H/W, Kernel mode, User mode)

2024. 8. 18. 00:12
목차
  1. 컴퓨터는 3층집으로 되어 있다.
  2. 결론

컴퓨터는 3층집으로 되어 있다.

그림1- 컴퓨터의 구조

  • 컴퓨터는 3개 계층으로 구성되어 있다. → H/W, S/W(Kernel, User)
  • H/W = Physical
  • S/W = Logical ≒ Virtual
  • CPU 64bit, OS 64bit = 64bit Platform
  • 운영체제(OS)는 소프트웨어다. → MS Word와 같다.
  • OS는 위로는 Application을 서포트한다. (잘 작동하도록 도와줌)
  • OS는 밑으로는 하드웨어를 제어/관리 한다.
  • Interrupt = 방해(알람), 컴퓨터와 주변기기가 통신(I/O)을 할 때 마다 Interrupt가 발생한다.
  • I/O(입출력) = Read(읽기), Write(쓰기)

 

C언어 printf 함수 사용하여 Hello World 출력 시 순서 (OS 제어의 순서)

  1. printf 함수를 이용해서 API를 Call 한다.
  2. API 내부에서 장치를 추상화한 파일(인터페이스)을 통해서 정보가 밑으로 내려간다.
  3. User mode에서 Kernel mode로 진입할 때 새로운 코드가 실행된다. → System Call (진입점에 있는 코드)
  4. 구성요소가 작동하고 System Call이 이루어지면서 Device Driver를 제어하기 시작
  5. Device Driver에서 Interrupt를 요청 → Interrupt Request(IRQ), 고유 번호가 있다.
  6. Interrupt가 발생하면서 CPU와 Device가 통신을 하게 된다. → Hello World 전달
  7. Device(Video card)에 변화가 생기면서 Device에 연결된 모니터에 Hello World가 렌더링된다. (출력 끝)
  8. Hello World 전달된 후, Device에서 Interrupt가 발생하면서 Driver로 신호가 간다. (종료 신호)
  9. Device Driver가 구성요소에 System Call 한 내용이 종료되었다는 것을 전달한다.
  10. Read할 것이 있으면 추가로 Read 진행, 없으면 종료. (함수 리턴)

 

위 통신 과정에서 프로세스의 상태에 따라서 I/O 방식의 차이가 있다.

Blocking I/O → API를 호출한 프로세스의 상태가 Wait 인 경우

Non-Blocking I/O → API를 호출한 프로세스의 상태가 Wait가 아닌 경우 (다른 일을 하고 있음)

 

 

결론

  • 컴퓨터는 3층집이다. → H/W, S/W(Kernel, User)
  • Interrupt는 컴퓨터와 주변기기가 통신할 때 발생한다.
  • Interrupt를 요청 = IRQ(Interrupt Request)는 고유번호가 있다. → Device 마다 다르다.
  • printf = API, API는 Kernel에서 실질적인 동작이 수행되도록(입출력이 발생하도록) 역할을 한다. → 이때 수행되는 함수를 System Call 이라 한다.

 

※ IRQ 확인 방법: Window + R → msinfo32 검색 → 하드웨어 리소스 → IRQ

 

 

 

 

 

 

 

 

 

 

참고

https://www.inflearn.com/course/%EA%B3%B0%EC%B1%85-%EC%89%BD%EA%B2%8C-%EB%B0%B0%EC%9A%B0%EB%8A%94-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C

'IT 지식 > 운영체제' 카테고리의 다른 글

프로세스와 스레드  (0) 2024.08.23
CPU 예측이 가져오는 문제점(멜트다운, 스펙터)  (1) 2024.08.22
CPU와 캐시 메모리  (1) 2024.08.21
DMA와 고성능 소켓  (0) 2024.08.20
인터럽트와 DirectX  (0) 2024.08.19
  1. 컴퓨터는 3층집으로 되어 있다.
  2. 결론
'IT 지식/운영체제' 카테고리의 다른 글
  • CPU 예측이 가져오는 문제점(멜트다운, 스펙터)
  • CPU와 캐시 메모리
  • DMA와 고성능 소켓
  • 인터럽트와 DirectX
Security Engineer
Security Engineer
IT 공부
Security Engineer
IT-log
Security Engineer
전체
오늘
어제
  • 분류 전체보기 (171) N
    • Programming (39)
      • Python 웹 스크래퍼 만들기 (39)
    • IT 지식 (64) N
      • IT 정보 (27)
      • CS 기초 (24)
      • 운영체제 (8)
      • IT 인프라 기초 (5) N
    • 보안 (45)
      • 악성코드 분석 (10)
      • Bandit 워게임 (25)
      • 취미로 해킹 2 (6)
      • 환경 구축 (4)
    • 웹 해킹 (23)
      • 웹 기초 지식 (8)
      • SQL 기본 (2)
      • 웹 해킹 및 시큐어 코딩 기초 (13)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Web
  • 악성코드 분석
  • CS 기초
  • 파이썬
  • overthewire
  • 시큐어 코딩
  • 악성코드
  • webScrapper
  • CSS
  • 해킹
  • 웹
  • 컴퓨터
  • 모의해킹
  • 운영체제
  • 취미로해킹
  • 웹 개발
  • Beautifulsoup
  • 웹 해킹
  • 취미로 해킹
  • flask
  • WarGame
  • IT 인프라
  • 워게임
  • HTML
  • Python
  • Def
  • bandit
  • 리눅스
  • Selenium
  • CS

최근 댓글

최근 글

hELLO · Designed By 정상우.
Security Engineer
컴퓨터의 구조 (H/W, Kernel mode, User mode)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.