달력

1

« 2025/1 »

  • 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
2011. 10. 11. 21:49

커널 OS이야기2011. 10. 11. 21:49

메모리 보호가 없음
- 응용 프로그램이 잘못된 ㅔㅁ모리르 참조하는 경우, 커널에서 이 오류를 감지하여 SIGSEGV 시그널을 보냄으로써 그 프로세스를 종료시킨다. 그러나 커널이 잘못된 메모리를 참조하는 경우에는 이를 제어하기란 쉽지 않다.
- 또한, 커널 메모리는 페이징되지 않는다. 즉 1바이트를 사용하면 가용한 물리적 메모리에서 1바이트가 감소하는 것임(가상 메모리 아님)

부동소수점 연산의 어려움


작은 고정 크기의 스택
- 유저 공간에서는 커다란 구조체나 큰 배열 등을 포함한 많은 변수를 스택에 할당할 수 있는데, 그 이유는 유저 공간에서는 크기가 동적으로 늘어날 수 있는 큰 스택을 갖고 있기 때문이다.
- 커널 스택은 크지고, 동적이지도 않다. 즉 작고 고정적이다. 커널 스택의 정확안 크기는 아키텍처별로 다르다. x86계열에서는 컴파일시 스택크기를 4 또는 8KB로 정할 수 있다.
- 관습저긍로 커널 스택은 두 개의 페이지로 구성되는데 (32비트는 8KB 2개, 64비트는 16KB)

동기화와 동시성
- 커널은 경쟁 상태에 놓이기 쉽다. 유저 공간의 싱글 스레드 응용 프로그램과는 달리ㅡ 커널은 공유 자원에 대한 동시적인 접근을 허용해야 하므로, 경쟁을 방지하기 위한 동기화가 필요하다.

'OS이야기' 카테고리의 다른 글

프로세스 생성  (0) 2011.10.11
container_of 매크로  (1) 2011.10.11
삽입정렬  (0) 2011.10.11
커널 시작 과정  (0) 2011.09.22
실시간 CPU 스케줄링 - Proportional Share 스케줄링  (0) 2010.07.30
:
Posted by НooпeУ


Code Start Code End