본문 바로가기

공부 기록/OS

(16)
[OS/공룡책] Chapter 2. 운영체제 구조 - 시스템 서비스, 링커와 로더, 응용 프로그램이 운영체제마다 다른 이유, 운영체제 설계 및 구현 시스템 서비스 - 현대 시스템의 또 다른 면은 시스템 서비스의 집합체이다. - 시스템 서비스는, 시스템 유틸리티로도 알려진, 프로그램 개발과 실행을 위해 더 편리한 환경을 제공한다. => 파일 관리, 상태 정보, 파일 변경, 프로그래밍 언어 지원, 프로그램 적재와 수행, 통신, 백그라운드 서비스 - 운영체제 대부분은 시스템 프로그램과 함께 일반적인 문제점을 해결하거나 일반적인 연산을 수행하는 데 유용한 프로그램들도 제공한다. 링커와 로더 - 소스 파일은 임의의 물리 메모리 위치에 적재되도록 설계된 오브젝트 파일로 컴파일 된다. => 재배치 가능 오브젝트 파일 - 링커는 재배치 가능 오브젝트 파일을 하나의 이진 실행 파일로 결합한다. - 로더는 이진 실행 파일을 메모리에 적재하는 데 사용되며, CPU 코어..
[OS/공룡책] Chapter 2. 운영체제 구조 - 운영체제 서비스, 사용자와 운영체제 인터페이스, 시스템 콜 운영체제 서비스 - 운영체제는 프로그램 실행 환경을 제공한다. 또한 운영체제는 프로그램과 그 프로그램의 사용자에게 특정 서비스를 제공한다. - 사용자 인터페이스 : GUI, CLI, 터치스크린 인터페이스 - 프로그램 수행 : 시스템은 프로그램을 메모리에 적재해 실행하고, 끝낼 수 있어야 한다. - 입출력 연산 : 효율과 보호를 위해, 사용자들은 통상 입출력 장치를 직접 제어할 수 없다. 따라서 운영체제가 입출력 수행의 수단을 제공해야 한다. - 파일 시스템 조작 : 많은 운영체제들은 때로는 개인의 선택에 따라, 때로는 특정 특성과 성능 특성을 제공하기 위하여 다양한 파일 시스템을 제공한다. - 통신 : 통신은 동일한 컴퓨터에서 수행되고 있는 프로세스들 사이에서 일어나고, 또한 네트워크에 의해 함께 묶여 ..
[OS/공룡책] Chapter 1. 서론 - 연습 문제 1) 운영체제의 세 가지 주요 목적은 무엇인가? - 컴퓨터 사용자가 편리하고 효율적으로 컴퓨터 하드웨어에서 프로그램을 실행할 수 있는 환경을 제공한다. - 태스크를 수행하는 데 필요한 각각의 리소스들을 가능한 공정하고 효율적으로 할당한다. - 제어 프로그램으로서, 두 가지 주요 기능을 수행한다. - 에러 및 컴퓨터의 부적절한 이용을 방지하기 위해 사용자 프로그램의 실행을 감독(관리)한다. - 연산 및 입출력 장치를 제어한다. 2) 컴퓨팅 하드웨어를 효율적으로 사용하려면 운영체제가 필요하다고 강조하였다. 운영체제가 이 원칙을 버리고 자원을 낭비하는 것이 적절한 때는 언제인가? 그러한 시스템이 실제로 낭비하는 것이 아닌 이유는 무엇인가? - GUI와 같이 사용자와 시스템의 상호작용이 우선되는 경우 CPU 사..
[OS/공룡책] Chapter 1. 서론 - 보안과 보호, 가상화, 분산 시스템, 커널 자료구조, 계산 환경 보안과 보호 - 보호 : 컴퓨터 시스템이 정의한 자원에 대해 프로그램, 프로세스, 또는 사용자들의 접근을 제어하는 기법 - 보안 : 외부 또는 내부의 공격을 방어하는 것 - 보호와 보안을 제공하기 위해서는 시스템의 모든 사용자를 구분할 수 있어야 한다. => 운영체제의 대부분은 사용자 이름과 연관된 사용자 식별자의 리스트를 유지한다. 윈도우 용어로는 보안 식별자(SID, Security ID)라고 한다. 가상화 - 가상화 : 단일 컴퓨터의 하드웨어를 여러 가지 실행 환경으로 추상화하여 개별 환경이 자신만의 컴퓨터에서 실행되고 있다는 환상을 만들 수 있는 기술 - 운영체제가 다른 운영체제 내에서 하나의 응용처럼 수행될 수 있게 한다. - 다수 사용자가 작업을 병행 수행하기 위한 방법으로 IBM 대형 컴퓨터..
[OS/공룡책] Chapter 1. 서론 - 운영체제의 작동, 자원 관리 운영체제의 작동 - 운영체제는 프로그램이 실행되는 환경을 제공한다. - 시스템 데몬 : 커널이 실행되는 전체 시간 동안 실행된다. 다중 프로그래밍과 다중 태스킹 - 운영체제의 가장 중요한 측면 중 하나는 여러 프로그램을 실행할 수 있다는 것이다. - 프로세스 : 다중 프로그램 시스템에서 실행 중인 프로그램 - 다중 태스킹 시스템에서 CPU는 여러 프로세스를 전환하며 프로세스를 실행하지만 전환이 자주 발생하여 사용자에게 빠른 응답 시간을 제공하게 된다. - 여러 프로세스를 병행하게 실행하려면 프로세스 스케줄링, 디스크 저장장치 및 메모리 관리를 포함하여 운영체제의 모든 단계에서 서로 영향을 미치는 기능이 제한되어야 한다. - 가상 메모리 : 일부만 메모리에 적재된 프로세스의 실행을 허용하는 기법. 적절한 ..
[OS/공룡책] Chapter 1. 서론 - 컴퓨터 시스템 구조 컴퓨터 시스템 구조 단일 처리기 시스템 - 코어는 명령을 실행하고 로컬로 데이터를 저장하기 위한 레지스터를 포함하는 구성요소이다. - 코어를 가진 하나의 메인 CPU는 프로세스의 명령어를 포함하여 범용 명령어 세트를 실행할 수 있다. - 단일 처리 코어를 가진 범용 CPU가 하나만 있는 경우 시스템은 단일 프로세서 시스템이다. 다중 처리기 시스템 - 일반적으로 각각 단일 코어 CPU가 있는 두 개 이상의 프로세서가 있다. - 주요 장점은 처리량 증가 => 그러나 N 프로세서의 속도 향상 비율은 N이 아니다. => 오버헤드가 발생하므로 - 가장 일반적인 다중 처리기 시스템은 각 피어 CPU 프로세서가 운영체제 기능 및 사용자 프로세스를 포함한 모든 작업을 수행하는 SMP(Symmetric multiproc..
[OS/공룡책] Chapter 1. 서론 - 컴퓨터 시스템의 구성, 인터럽트, 저장장치 구조 컴퓨터 시스템의 구성 - 현대의 범용 컴퓨터 시스템은 하나 이상의 CPU와, 구성요소와, 공유 메모리 사이의 액세스를 제공하는 공통 버스를 통해 연결된 여러 장치 컨트롤러로 구성된다. - 일반적으로 운영체제에는 각 장치 컨트롤러마다 장치 드라이버가 있다. - 장치 드라이버는 장치 컨트롤러의 작동을 잘 알고 있고, 나머지 운영체제에 장치에 대한 일관된 인터페이스를 제공한다. 인터럽트(Interrupts) - 컨트롤러는 인터럽트를 통해 장치 드라이버에게 작업을 완료했다는 사실을 알린다. - 하드웨어는 어느 순간이든 시스템 버스를 통해 CPU에 신호를 보내 인터럽트를 발생시킬 수 있다. - 인터럽트는 운영체제와 하드웨어의 상호 작용 방식의 핵심 부분이다. - 각 컴퓨터 설계는 자신의 인터럽트 메커니즘을 가지고..
[OS/공룡책] Chapter 1. 서론 - 운영체제가 할 일 운영체제(Operating System) - 컴퓨터 하드웨어를 관리하는 소프트웨어 - 응용 프로그램을 위한 기반을 제공한다. - 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중재자 역할을 수행한다. - 근본적인 책임은 자원들을 프로그램에 할당하는 것 운영체제가 할 일 - 컴퓨터 시스템 : 하드웨어 > 운영체제 > 응용 프로그램 > 사용자 - 운영체제는 다양한 사용자를 위해 다양한 응용 프로그램 간의 하드웨어 사용을 제어하고 조정한다. - 운영체제는 컴퓨터 시스템이 동작할 때 자원을 적절하게 사용할 수 있는 방법을 제공한다. - 운영체제는 다른 프로그램이 유용한 작업을 할 수 있는 환경을 제공한다. 사용자 관점(User view) - 대부분 사용의 용이성을 위해 설계 >>> 성능에 약간 신경을 쓰고 >>> (..