본문 바로가기

CS/운영체제

[CS] 운영체제

 

[ 운영체제 ]

 

운영체제란 컴퓨터 전체를 지휘하는 핵심 프로그램을 말합니다.

프로그램에게 CPU를 어떻게 할당할건지, 메모리는 어떻게 관리할건지, 프로세스는 어떻게 실행할 건지, 파일은 어떻게 관리할건지, 입출력 장치는 어떻게 활용할 것인지 등의 역활을 합니다.

 

즉 운영체제는 실행할 프로그램에게 필요한 자원을 할당해주고 , 프로그램이 올바르게 실행할수 있도록 돕는 특별한 프로그램입니다.

 

운영체제는 메모리에서 커널 영역에서 따로 적재 되어 실행됩니다. 나머지 프로그램은 사용자 영역에 적재됩니다.


[ 커널 ]

 

운영체제에서 메모리에 올라와 있는 부분을 의미합니다. -> 운영체제의 핵심 부분

 


[  Byte Ordering ]

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

 

Big Endian

빅 에디안 방식은 낮은 주소에 데이터의 높은 바이트(MSB, Most Significant Bit)부터 저장하는 방식입니다.

가장 낮은 주소에 MSB가 저장됨으로 offset = 0 인 Byte를 보면 양수/음수를 바로 파악할 수 있습니다.

 

 

Little Endian

리틀 에디안 방식은 낮은 주소에 데이터의 낮은 바이트(LSB , Least Significant Bit)부터 저장하는 방식입니다.

가장 낮은 주소에 부호값이 아닌 데이터가 먼저 오기 때문에 바로 연산이 가능합니다.

 


[  프로세스와 쓰레드의 차이 ]

프로세스

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

쓰레드

  • 프로세스 내에서 할당받은 자원을 사용하여 동작하는 실행 단위를 의미합니다.
  • 특징
    • 쓰레드는 프로세스 내에서 Stack만 따로 할당 받고 , Code, Data, Heap 영역은 공유합니다.
    • 쓰레드는 프로세스의 자원을 공유하기 때문에 다른 쓰레드에 의한 결과를 즉시 확인할 수 있습니다.
    • 프로세스 내에 존재하며 프로세스가 할당받은 자원을 이용하여 실행됩니다.

 

 

 

프로세스와 쓰레드는 모두 작업의 흐름을 의미하지만 실행중인 프로그램은 프로세스라 하고 프로세스 안에 포함되는 더 작은 단위의 작업 흐름을 쓰레드라고 합니다.


 

 

 

 

 

 

 

 

 

참고 )

https://mangkyu.tistory.com/92

https://velog.io/@heyksw/CS-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-pf3026ep