donaricano-btn

monolithic kernel(모놀리식) vs micro kernel(마이크로)

- OS 커널 설계 및 구현 방식은 두 가지가 있다


1. monolithic kernel(모놀리식)

- OS의 주요 구성 요소를 하나의 메모리 공간을 통해 제공

- 유닉스 계열, 리눅스


2. micro kernel(마이크로)

- 최소한의 기능만 커널이 제공, 그 외 기능은 커널 밖에서 제공

- 더 심플하다

- 애플 Mac OS X

'IT_Infra > Architecture' 카테고리의 다른 글

[IT_Infra] C10K 문제  (0) 2016.10.12
[IT_Infra] 동기/ 비동기(synchronous/asynchronous)  (0) 2016.10.12
[IT_Infra] OS kernel  (0) 2016.09.19
[IT_Infra] 프로세스와 스레드  (0) 2016.09.12
[IT_Infra] 3계층 시스템의 구성도  (0) 2016.09.07
블로그 이미지

리딩리드

,
donaricano-btn

OS kernel

- OS에서 kernel은 심장이다

- kernel 때문에 개발자는 하드웨어나 다른 애플리케이션에 끼치는 영향을 의식하지 않고 개발할 수 있다



1. 시스템 콜 인터페이스

1) 시스템 콜

- 애플리케이션이 OS를 통해 어떤 처리를 하고 싶으면 시스템 콜이라는 명령을 이용해서 커널에 명령한다

2) 예

- 디스크상의 데이터를 읽음, 네트워크 통신을 하고 싶다

- 해당 시스템콜을 호출하면 기능을 사용할 수 있다

- 위 요청 모두 프로세스 관점에서 커널에 대한 시스템 콜이다


2. 프로세스 관리

1) 물리서버 CPU 코어의 제한

- 물리서버의 CPU가 제한적이다. 그렇기 때문에 어떤 프로세스가 어느 정도의 CPU 코어를 이용할우선순위를 결정하는 것이 역할이다

- 스케줄 관리

3. 메모리 관리

- 프로세스 관리는 CPU 코어를 고려, 메모리 관리는 물리 메모리 공간의 최대치를 고려

- 프로세스가 이용하는 독립 메모리공간 확보, 상호간의 참조 영역을 지키기 위해 독립성 관

4. 파일 시스템

- OS 기능의 하나로 물리 디스크에 제공된 데이터를 관리하는 기능

1) 역할

- 프로세스(스레드)는 편리성 때문에 모든것을 파일 단위로 생각한다

- 애플리케이션을 파일이라는 단위로 데이터를 작성하거나 삭제할 수 있다

- 폴더 구조제공, 엑세스 관리, 고속화, 안정화 

5. 장치 드라이버

1) NIC나 디스크는 다수 제조사가 독자 제품을 제공하기 때문에 문제 발생

- 커널은 장치 드라이버를 이용해서 그 아래 물리 장치를 은폐

- 장치 제조사가 OS에 대응하는 장치 드라이버를 제공, 커널을 경유하여 이용가능




블로그 이미지

리딩리드

,
donaricano-btn

프로세스와 스레드

프로세스 및 스레드는 프로그램 실행파일이 아니라 OS상에서 실돼서 어느 정도 독립성을 가짐

- 프로세스와 스레드는 메모리 공간이 필요하며 커널에 의해서 확보된다


1. 프로세스    

1) 장점

- 메모리를 각각 할당 받는다

- 개별 처리 독립성이 높다

2) 단점

- 메모리를 독자적으로 사용하기 때문에 생성시 CPU 부하발생

- CPU 부하를 줄이기 위해 미리 프로세스를 시작시킨다(pooling)

2. 스레드

1) 장점

- 생성 시 부하가 낮다

2) 단점

- 메모리 공간을 공유하기 때문에 의도하지 않은 데이터 읽기/쓰기가 발생

3. 프로세스의 공유?

- 메모리 공간을 공유할 수 있다(DB서버)

- 예: 캐시로 저장하는 데이터는 공유 메모리에 놓고, 단독 데이터는 전용 메모리에 둔다


블로그 이미지

리딩리드

,
donaricano-btn

3계층 시스템의 구성도


1. 웹서버, AP서버, DB서버


1) 1층은 물리 서버를 나타낸다

2) 2층은 각 서버의 하드웨어를 나타낸다

3) 3층은 논리 구성으로 CPU와 메모리를 확대한 것이다



블로그 이미지

리딩리드

,