Computer Science/운영체제

    System Call

    System Call

    시스템 콜은 사용자나 응용 프로그램이 커널에서 제공하는 기능을 사용하기 위한 인터페이스 이다. 운영체제는 커널이 제공하는 서비스를 시스템 콜을 이용해 제한함으로써 컴퓨터 자원을 보호한다. 예) 프로세스 생성/종료, I/O 작업등이 있다. (fork, exec, exit, wait) Fork() 새로운 프로세스를 생성할 때 사용한다. Wait() child 프로세스가 종료될 때까지 기다리는 작업 (Wait를 통해서 child의 실행이 끝날 때까지 기다려준다. parent가 먼저 실행되더라도, wait()는 child가 끝나기 전에는 return하지 않기때문에 반드시 child가 먼저 실행된다. exec() 단순 fork는 동일한 프로세스의 내용을 여러번 동작할 때 사용한다. child에서는 parent와 ..

    인터럽트(Interrupt)

    인터럽트(Interrupt)

    정의 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우 현재 실행중인 작업을 즉시 중단하고, 발생된 상황에 대한 우선 처리가 필요하다고 CPU에 알리는 것 지금 수행 중인 일보다 더 중요한 일(입출력, 우선 순위 연산 등)이 발생하면 그 일을 먼저 처리하고 나서 하던 일을 계속해야한다. 주 프로그램이 실행되다가 인터럽트가 발생했다. 현재 수행 중인 프로그램을 멈추고, 상태 레지스터와 PC 등을 스택에 저장한 뒤에 인터럽트 서비스 루틴으로 간다. 인터럽트 처리가 완료 되었다면, 마지막에 실행되던 주소로 점프하고, 주 프로그램을 실행한다. 이때, 인터럽트 기능이 없었다면, 컨트롤러는 특정한 어떤 일을 할 시기를 알기 위해 계속 체크를 해주어야 될 것이다. 이러한 방식을 폴링이라고한다. 폴링 대상을 ..

    프로세스 & 스레드 (Process & Thread)

    프로세스 & 스레드 (Process & Thread)

    프로세스 실행중인 프로그램, 현대의 컴퓨팅 시스템에서 작업의 단위 실행 파일이 메모리에 적재될 때 프로그램은 프로세스가 된다. 프로세스의 현재 활동의 상태는 프로그램 카운터 값과 프로세서 레지스터의 내용으로 나타낸다. 프로세스의 메모리 배치는 일반적으로 여러 섹션으로 구분되며 아래와 같다. 텍스트 섹션 : 실행 코드 데이터 섹션 : 전역 변수 힙 섹션 : 프로그램 실행 중에 동적으로 할당되는 메모리 스택 섹션 : 함수를 호출할 때 임시 데이터 저장장소 (함수 매개변수, 복귀 주소 및 지역 변수) 텍스트 및 데이터 섹션의 크기는 고정되기 때문에 프로그램 실행 시간 동안 크기가 변하지 않는다. 그러나 스택 및 힙 섹션은 프로그램 실행 중에 동적으로 줄어들거나 커질 수 있다. 함수가 호출될 때마다 함수 매개변..

    운영체제란?

    운영체제란?

    왜 운영체제를 공부하는가? 거의 모든 코드가 운영체제 위에서 실행되므로 운영체제 작동방식에 대한 지식은 적절하고 효율적이며 효과적이며 안전한 프로그래밍에 중요하기 때문이다. 운영체제란 무엇인가? 컴퓨터의 하드웨어를 관리하는 소프트웨어다. 운영체제는 또한 응용 프로그램을 위한 기반을 제공하며 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중재자 역할을 수행한다. 운영체제가 할 일 1. 사용자 관점 : 사용되는 인터페이스에 따라 달라진다. 한 사용자가 자원을 독점하도록 설계되었으며 목표는 사용자가 수행하는 작업을 최대화하는 것, 이러한 경우 운영체제는 대부분 사용의 용이성을 위해 설계되고 성능에 약간 신경을 쓰고 다양한 하드웨어와 소프트웨어 자원이 어떻게 공유되느냐의 자원의 이용에는 전혀 신경을 쓰지 않음 2. ..