목록OS (6)
코학다식
Operating System chapter 3, Processes (2) 프로세스 생성 부모 프로세스는 자식 프로세스를 생성하는데, 이는 프로세스들의 트리를 구성하게 된다. 프로세스는 프로세스 식별자(pid)를 통해 식별되고 관리된다. Resource sharing option 부모와 자식은 모든 자원을 공유한다. 자식은 부모의 자원의 부분집합을 공유한다. 부모와 자식은 자원을 공유하지 않는다. Execution option 부모와 자식은 동시에 실행된다. 부모는 자식이 종료될 때까지 기다린다. Address space option 자식은 부모의 복사체다. 자식은 그것의 안에 로드된 프로그램을 가진다. 리눅스 시스템에서의 프로세스 트리(tree) UNIX에서의 프로세스 생성 먼저 그림을 보자. > a...
Operating System charter 3, Processes (1) Process: 프로세스란 무엇일까? 실행 중인 프로그램을 말한다. 프로그램은 passive entity 프로세스는 프로그램 카운터가 동작하는 active entitiy 프로그램은 실행 가능한 파일이 메모리에 로드되었을 때 프로세스가 된다. 운영체제는 다양한 프로그램을 실행한다. Batch system - jobs Time-shared systems - tasks(interactive) 프로세스는 코드 (또는 텍스) 섹션, 데이터 섹션, 스택(stack)과 힙 섹션, 그리고 프로그램 카운터를 포함한다. 프로그램 카운터는 다음에 실행될 명령의 위치를 저장하고 있다. 실행 가능한 파일이 메모리에 로드되면 다음과 같다. 스택에는 함수의..
Operating System chapter 1-2 (4) System Boot 부팅(Booting)이란 커널을 로딩함으로써 컴퓨터를 시작하는 것을 말한다. 시스템에서 파워가 초기화되면, Bootstrap loader가 위치한, 고정된 메모리 위치(ROM)에서 실행이 시작된다. 보통 두 단계의 과정을 거친다. (mother board - hard disk) 운영체제 서비스 운영체제의 서비스 중 한 집합은 사용자에게 유용한 기능을 제공한다. 유저 인터페이스(User interface) - 거의 모든 운영체제가 사용자 인터페이스(UI)를 가진다. Command-Line Interface(CLI), Graphic User Interface(GUI), Batch 프로그램 실행 - 시스템은 메모리에서 프로그램을 ..
Operating System chapter 1-2 (3) System Calls 시스템 콜(System Call)이란 운영체제에 의해 제공되는 서비스의 프로그래밍 인터페이스(Programming Interface)이다. 주로 함수의 모임인 라이브러리 형태로 제공되어 사용자가 호출해서 사용하도록 되어 있다. 일반적으로 high-level 언어로 작성된다. (C or C++) 대부분 직접적인 시스템 콜 사용보다는 high-level의 Application Program Interface(API)을 통한 프로그램에 의해서 접근된다. 가장 자주 쓰이는 API에는 윈도우의 Win32(64) API, 리눅스 계열의 POSIX, Java Virtual Machine의 Java API가 있다. System Call ..
Operating System chapter 1-2 (2) 스토리지 계층 스토리지 시스템은 계층적으로 정리되어 있다. (속도, 비용, 휘발성 등으로 구분될 수 있음) Caching 메인 메모리에 접근하는 데에는 시간이 소요되기 때문에, 최근 접근한 데이터를 가지고 있는 빠른 속도의 메모리를 CPU와 메인 메모리 사이에 둔다. 이것이 캐시(Cache)이다. 주로 S램을 사용한다. 스토리지 계층에 의해 같은 데이터가 여러 곳에 존재하는 등의 Consistency 문제가 발생할 수 있다. 특히 여러 사용자가 사용할 경우 이는 더 문제가 될 수 있다. 이러한 문제를 예방하기 위해 Cache management policy를 필요로 한다. 디스크에서 레지스터로의 이동 멀티태스킹(Multitasking) 환경은 가..
Operating System chapter 1-2 (1) 운영체제란 무엇일까? 운영체제란 컴퓨터의 사용자와 컴퓨터 하드웨어 사이의 중개인 역할을 하는 프로그램을 말한다. 운영체제의 정의(1) 사용자 관점 운영체제는 쉬운 사용과 수행을 위한 프로그램이다. 시스템 관점 운영체제는 자원 할당과 제어를 위한 프로그램이다. 모든 자원을 관리한다. 효율적이고 공정한 자원 사용을 위해 충돌하는 요구들 사이에서 결정을 내린다. 에러와 부적절한 컴퓨터의 사용을 예방하기 위해 프로그램의 실행을 제어한다. 운영체제의 정의(2) 보편적으로 받아들여지는 정의는 없고, "운영체제를 구매할 때 판매자가 제공하는 모든 것"이라고 생각하는 게 좋은 추정이다. (하지만 판매자마다 차이가 존재한다.) 모바일 운영체제는 핵심 커널(작은 ..