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와 메모리를 확대한 것이다



블로그 이미지

리딩리드

,
donaricano-btn

분할형 아키텍처(2) - 수직분할형


- 서버별로 다른 역할을 담당


1. 클라이언트 - 서버형(C/S)

- 업무 어플리케이션, 미들웨어, 데이터베이스 등의 소프트트웨어는 물리 서버 상에서 운영

- 위 소프트 웨어들을 단말(스마트폰, 태블릿, PC) 이라불리는 소형 컴퓨터에서 접속해서 이용

1) 예

- 주식 판매 시스템

- 그래프 같은 분석은 PC에서 하고 데이터는 서버에서 가져옴

2) 장점

- 클라이언트 측에서 많은 처리를 실행, 소수의 서버로 다수의 클라이언트 처리

3) 단점

- 클라이언트 측의 소프트웨어 업데이트 필요

- 서버 확장성의 한계


2. 3계층형

- 클라이언트 - 서버형의 발전형태

- 현재 인터넷의 대부분이 사용

1) 각 층의 의미 

- 프레젠테이션 : 사용자입력, 웹 브라우저 화면 표시

- 애플리케이션 : 사용자 요청 처리

- 데이터 : 애플리케이션의 요청에 따라 데이터 입출력

2) 장점

- 서버 부하 집중 개선

- 클라이언트 단말의 정기 업데이트 불필요

- 처리 반환에 의한 서버 부하 저감

3) 단점 

- 구조가 복잡


블로그 이미지

리딩리드

,