CS지식

CS지식

[CS]운영체제

💻운영체제의 정의 운영체제의 정의는 사용자와 컴퓨터 하드웨어 사이에 중계역할을 하면서, 프로그램의 실행을 관리하고 제어하는 시스템 소프트웨어이다. 운영체제의 자원 하드웨어 자원 - CPU, 캐시나 메모리, 키보드, 마우스, 디스플레이, 하드 디스크, 프린터 등 소프트웨어 자원 - 응용프로그램들 데이터 자원 - 파일, 데이터베이스 운영체제는 자원을 독점한다. 많은 사용자들이 자기 자신이 직접 하드디스크에 파일을 기록한다고 생각하지만, 사실 사용자들은 하드디스크에 파일을 쓸 빈곳이 어디에 있는지 조차 알지도 못한다. 관리는 순전히 운영체제의 몫이다. 운영체제만이 자원을 독점적으로 관리하는 이유는 사용자들과 응용프로그램으로 부터 자원에 대한 훼손을 막고 운영체제가 사용자들과 응용프로그램간에 자원을 효과적으로 ..

CS지식

프로세스 제어 블록(PCB)란?

프로세스 제어 블록(PCB)는 프로세스 관리의 핵심 데이터이다. 프로세스 실행, 스줄링, 프로세스와 관련된 메모리 관리, 파일 입출력 등 많은 상황에서 커널에 의해 액세스되고 갱신된다. 운영체제는 시스템 전체에 하나의 프로세스 테이블을 만들고 프로세스 테이블에 모든 프로세스의 정보를 관리한다. 커널은 프로세스를 만들 때마다 프로세스 제어 블록을 생성하여 프로세스 테이블의 비어 있는 항목에 PID(프로세스 번호)와 함께 PCB를 연결하다. 프로세스 테이블과 프로세스 제어 블록(PCB)는 커널 공간에서 생성되며, 커널만이 액세스가 가능하다. 프로세스 번호(PID) 프로세스를 식별하기 위한 고유한 번호로 0과 양의 정수로만 사용된다. 커널은 프로세스를 생성할 때 프로세스 번호 PID를 할당한다. 부모 프로세스..

CS지식

사용자 모드(User mode)와 커널 모드(kernel mode)란?

CPU는 사용자 모드와 커널 모드, 둘 중 하나로 설정된다. 응용프로그램 코드는 사용자 모드에서 실행되며, 커널 코드는 커널 모드에서 실행된다. 이 말은 운영체제가 응용프로그램을 실행시킬 때는 사용자 모드로 설정되고, 응용프로그램이 커널 함수를 실행시키기 위해 시스템 호출을 하면 그 때 커널모드로 전환되며 커널 코드가 실행된다. 사용자 모드인지 커널 모드인지 구별하는 방법은 CPU에 내장되어 있는 모드 레지스터를 통해서 알 수 있다. 사용자 모드 사용자 모드일 때, 응용프로그램은 메모리 안에 존재하는 사용자 영역에 액세스 할 수 있으며 커널 영역에 접근 시 시스템 예외가 발생하고 응용프로그램을 종료시킨다. 커널 모드 커널 모드일 때, CPU는 모든 메모리 공간을 액세스할 수 있으며 특권 명령을 실행할 수..

CS지식

하드웨어 인터럽트란?

(하드웨어)인터럽트란? 하드웨어 장치들이 CPU에게 하드웨어 신호(인터럽트 신호)를 물리적으로 발생시켜 입출력 완료나 타이머 완료 등을 CPU에게 알려주는 방법입니다. 또 인터럽트는 비동기적 사건을 CPU에게 알려주는 행위입니다. CPU에서 인터럽트 신호를 받게되면 CPU는 하던 일을 멈추고 인터럽트 요청을 처리하는 코드를 실행시킵니다. 이 코드를 인터럽트 서비스 루틴이라고 부르며, 커널 코드나 디바이스 드라이버내에 작성됩니다. 예를 들어 하드웨어 장치(키보드)가 입력을 하면, CPU에 인터럽트 신호가 발생하고 CPU는 하던을 멈추고 인터럽트 신호를 처리하기 위해 인터럽트 서비스 루틴을 실행합니다. 인터럽트 서비스 루틴 코드가 키 값을 읽어 커널 영역에 있는 키 입력 버퍼나 키 입력을 기다리는 응용프로그..

CS지식

시스템 호출이란?

시스템 호출 시스템 호출이란 응용프로그램에서 커널 코드를 실행하는 기법입니다. 여기서 커널 코드란? 커널 코드는 커널에 작성된 함수를 뜻 합니다. 응용프로그램은커널에 작성된 함수를 사용할 수 없습니다. 왜냐하면 함수의 위치를 모를 뿐더러, 결론적으로 말하자면 응용프로그램은 커널에 있는 메모리에 접근 권한이 없기 때문입니다. 그래서 운영체제는 패키지를 통해 응용프로그램을 대신하여 시스템 호출 라이브러리를 제공합니다. 따라서 커널 코드를 사용할 수 없는 응용프로그램은 시스템 호출 라이브러리안에 들어있는 시스템 호출 함수를 통하여 커널의 기능을 사용할 수 있습니다. 시스템 호출은 응용프로그램이 커널의 기능을 사용할 수 있는 유일한 수단입니다. 시스템 호출 함수들은 시스템 호출을 일으키는 기계 명령을 통해 CP..

simun
'CS지식' 카테고리의 글 목록