티스토리 뷰

OS

커널의 기능들 - 1

LDobac 2017. 2. 7. 20:35

이 포스팅은 위키백과를 참고하여 영어울렁증이 있는 저에게 친구인 번역기와 함께 번역하여 작성한 포스팅 입니다.

영어 울렁증이 없으시다면 가서 보시는걸 더욱 추천드립니다.


커널에 대해서는 저번 포스팅인 운영 체제란? 에서 마지막 부분에 간략하게 소개를 했습니다.

그러면 이번 포스팅에서는 커널에 대해 자세히 적어 보도록 하겠습니다.

(커널의 일반적인 구조 ,출처 : 위키백과)

위 사진은 일반적인 커널의 형태 입니다.

맨 위의 Applications 가 응용 프로그램 이고요 그 밑에 존재하는것이 커널 그리고 커널 밑에 각종 하드웨어 들이 있는것을 알 수 있습니다.

이처럼 커널은 하드웨어와 응용 프로그램 사이에서 인터페이스를 제공하여 응용 프로그램이 하드웨어에서 부터 오는 자원을 관리하고 사용 할 수 있게 해줍니다.

아래는 영어 위키백과에 존재하는 Functions of the kernel 이라는 부분을 제가 번역 한 것입니다. 따라서 많이 부자연스러울수 있으니 양해 부탁드립니다. 영어를 좀 하신다면 가서 직접 보시는걸 추천드립니다!


커널의 기능들

커널의 주요 기능은 컴퓨터에 속한 자원들에 대한 접근을 중재 하는 것 입니다.


CPU

컴퓨터 시스템의 중앙 부품들은 프로그램을 작동 시키거나 실행시키는 역할을 담당합니다.

 커널은 많은 프로그램들중 어느것이 프로세서에 할당되어야 하는지 결정할 책임이 있습니다 (아마도 스케줄링에 대한 설명 같습니다)


Random-Access Memory (RAM)

램은 프로그램의 명령어와 데이터를 저장 하는 대에 이용됩니다.

일반적으로, 프로그램을 실행 시키려면 명령어와 데이터 둘 다 있어야 합니다.

종종 여러 프로그램들은 메모리에 접근하기를 원하며, 컴퓨터가 가지고 있는 메모리보다 더 많은 메모리를 요구 하기도 합니다.

커널은 각 프로세서가 사용 할 수 있는 메모리를 결정하고, 그리고 메모리가 부족할때 수행 할 행동을 결정합니다.


입출력 장치

입출력 장치는 키보드, 마우스, 디스크 드라이브, 프린터, 네트워크 어댑터 그리고 디스플레이 장치를 말합니다.

커널은 응용 프로그램의 요청을 받아 입출력을 수행하며 장치를 사용하기 위한 편리한 방법을 제공합니다.

일반적으로 응용 프로그램이 장치의 세부 사항을 알 필요가 없을 정도로 추상화가 됩니다.


(입출력 장치에 같은 블록에 있던 구문이 아닙니다, 여기에 오역이 조금 많습니다.)

리소스 관리에 필요한 핵심 요소는 실행공간의 정의와 공간 내의 리소스에 대한 접근을 중재하는데사용되는 보호 메커니즘 입니다.

커널은 또한 IPC(Inter Proces commnuication)이라고 불리는 프로세스 간의 동기화 및 통신을 위한 방법을 제공합니다.

커널은 이러한 부분을 자체적으로 구현 하거나, 다른 프로세스에 기능을 제공하기 위해 다른 프로세스에게 의존 할 수 있도록 합니다.

이러한 경우에는 프로세스가 서로 제공한 기능에 접근 할 수 있도록 프로세서가 IPC를 지원 해야 합니다.

마지막으로 커널은 실행중인 프로그램에 이러한 기능에 대한 접근 방법을 제공 해야 합니다.


메모리 관리

커널은 시스템 메모리에 대해 완전한 접근 권한을 가지고 있으며 프로세서가 요청 할 때 안전하게 접근 할 수 있도록 하여야 합니다.
보통 안전하게 접근하게 하기 위한 첫 번째 단계는 가상 주소 지정 입니다. 일반적으로는 페이징, 세그먼트 기법을 사용합니다.
가상 주소는 커널이 제공한 물리적 주소를 가상 주소 방식인 또 다른 주소처럼 보이게 합니다. 
가상 주소 공간은 프로세스 마다 다르게 보일 수 있습니다.
하나의 프로세스가 특정 가상 주소에서 접근하는 메모리는 다른 프로세스가 같은 주소에 접근 하는 것과 다른 메모리 일 수도 있습니다.
이렇게 하면 모든 프로그램이 커널과는 달리 동작하는 것 처럼 작동하여 응용 프로그램이 서로 충돌 하는 것을 방지 할 수 있습니다.

많은 시스템에서 프로그램의 가상 주소는 현재 메모리에 없는 데이터를 나타낼 수 있습니다.
가상 주소로 제공 되는 간접 지정 계층은 하드 드라이브와 같은 다른 데이터 저장소를 사용하여 주 메모리에 있어야 하는 데이터를 저장 할 수 있게 합니다.
결과적으로 운영체제는 시스템이 가지고 있는 물리적 메모리 보다 더 많이 프로그램에게 할당 시킬 수 있도록 합니다.
결과적으로 운영 체제는 시스템이 가지고 있는 물리적 메모리보다 더 많이 프로그램에게 할당 시킬 수 있도록 합니다.
프로그램이 필요한 데이터가 현재 RAM에 존재 하지 않으면 CPU는 이러한 경우가 발생했다는 신호를 보내고 커널은 비활성 메모리 블록의 내용을 디스크에 기록하고 프로그램이 요청한 데이터로 대체 합니다.
그런 다음 프로그램이 중지 된 시점부터 다시 프로그램을 동작 하게 합니다.
이러한 방법은 일반적으로 수요 페이징으로 알려져 있습니다.

가상 주소는 또한 한 개의 커널 공간과 사용자 공간에 대한 예약된 메모리의 가상 파티션 생성을 허용 합니다.
응용 프로그램은 프로세서가 커널의 메모리 주소를 지정하는 것을 허용 하지 않으므로, 실행중인 응용 프로그램이 실행중인 커널을 손상 시키지 않습니다.
이러한 메모리 공간의 파티션 방법은 실제 범용 커널의 설계에 많은 기여를 하였으며 일부 연구용 커널은 다른 접근 방식을 취하기도 하지만 보편적으로는 이러한 시스템을 채택합니다.



내용이 조금 많아져서 1,2 편으로 분류하겠습니다.
아무래도 영어를 잘 못하고 번역도 잘 하는 편도 아니라서 문장 단위로 번역하다 보니 위와 같은 이상한 글 형식이 탄생하였는데 양해 부탁드립니다
그리고 오탈자 같은거 있으면 댓글로 말해 주시면 감사 하겠습니다.


'OS' 카테고리의 다른 글

프로세스란 무엇인가  (1) 2017.02.09
커널의 종류  (0) 2017.02.08
커널의 기능들 - 2  (0) 2017.02.08
운영체제란?  (0) 2017.02.07
CPU Register  (0) 2016.04.22
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
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
글 보관함