본문 바로가기
CS 지식

CS 준비 - 운영체제

by newny 2023. 10. 11.
반응형

Byte Ordering이란?

https://www.youtube.com/watch?v=j-UOJbAIfs0

데이터가 저장되는 순서를 의미합니다. Byte Ordering의 방식에는 빅엔디안(Big Endian)과 리틀엔디안(Little Endian)이 있습니다.

Big Endian

  • 가장 큰 값(Most Significant Bit)이 가장 낮은 주소에 위치하는 저장 방식입니다.
  • Network의 Byte Order는 Big-Endian 방식입니다.
  • 가장 낮은 주소에 MSB가 저장되므로 offet=0인 Byte를 보면 양수/음수를 바로 파악할 수 있습니다.

Little Endian

  • 가장 큰 값(Most Significant Bit)이 가장 높은 주소에 위치하는 저장 방식입니다.
  • 인텔 계열 CPU에 사용됩니다.
  • 가장 낮은 주소에 부호값이 아닌 데이터가 먼저 오기 때문에, 바로 연산을 할 수 있습니다.

 

동시성과 병렬성

https://www.youtube.com/watch?v=vKs7I3vGpF8

동시성 (=멀티태스킹)

  • 빠른 처리 속도로 인해 동시에 실행되는 것처럼 보이는 것 (논리적)
  • 한 사람이 여러 일을 조금씩 아주 빨리 처리하는 방식
  • CPU는 한 순간에 하나의 일을 처리함
  • 싱글코어에서 멀티 스레드
  • Concurrent Programming

병렬성

  • 실제로 동시에 여러 작업이 처리되는 것 (물리적)
  • 여러 사람이 여러 일을 나눠서 처리하는 방식
  • 멀티코어
  • Parallel Programming

 

Context Switching (문맥 교환) 이란?

https://www.youtube.com/watch?v=Na5BrdnB-eo

인터럽트가 발생됐을 때 CPU에서 실행 중인 프로세스를 중단하고, 인터럽트 발생 원인의 프로세스를 처리하기 위한 과정입니다. 현재 실행 중인 프로세스의 상태(Context)를 먼저 저장하고, 다음 프로세스를 동작 시켜 작업을 처리한 후에 이전에 저장된 프로세스의 상태를 다시 복구합니다.

여기서 인터럽트란 CPU가 프로세스를 실행하고 있을 때, 입출력 하드웨어 등의 장치나 예외 상황이 발생하여 처리가 필요함을 CPU에게 알리는 것을 말합니다.

ex) 인터럽트 코드의 실행을 위해 CPU에 기존에 할당 되어있던 작업과 인터럽트 처리 될 작업을 교환한다.

 

프로세스와 쓰레드의 차이

프로세스

  • 메모리에 올라와 실행되고 있는 프로그램의 인스턴스
  • 특징
    • 운영체제로부터 독립된 메모리 영역을 할당 받는다. (다른 프로세스의 자원에 접근 X)
    • 프로세스들은 독립적이기 때문에 통신하기 위해 IPC를 사용해야 한다.
    • 프로세스는 최소 1개의 쓰레드(메인 쓰레드)를 가지고 있다.

쓰레드

  • 프로세스 내에서 할당 받은 자원을 이용하여 동작하는 실행 단위
  • 특징
    • 쓰레드는 프로세스 내에서 Stack만 따로 할당 받고, Code, Data, Heap 영역은 공유한다.(Stack을 분리한 이유는 Stack에는 함수의 호출 정보가 저장되는데, Stack을 공유하면 LIFO 구조에 의해 실행 순서가 복잡해지기 때문에 실행 흐름을 원활하게 만들기 위함이다.)
    • 쓰레드는 프로세스의 자원을 공유하기 때문에 다른 쓰레드에 의한 결과를 즉시 확인할 수 있다.
    • 프로세스 내에 존재하며 프로세스가 할당 받은 자원을 이용하여 실행된다

  •  
반응형

'CS 지식' 카테고리의 다른 글

CS 준비 - 네트워크  (0) 2023.10.03
CS준비 - 자료구조  (0) 2023.10.02

댓글