애플리케이션에서의 병행성 사례 시그널 처리, 연산과 I/O의 중첩, 통신 등 프로세스 내 다수의 스레드가 존재하고 병행 실행 시스템 내 다수의 프로세스가 병행 실행 병행성 : 인터럽트 (Interrupt) 주변기기 등 외부 사건에 의해 발생 : 비동기적 실행 중인 프로그램에서 인터럽트 핸들러로 제어가 넘어감 병행성 : 시그널 (Signal) 프로세스에게 이벤트 발생을 알리는 통지 기법이다. 비동기 시그널 예) 키보드에서 Ctrl C 키를 누를 때 발생 동기 시그널 예) 프로그램 내의 부적절한 행위(illegal address 접근 시도)나 오류 (divide by zero 등)로 인해 발생 한다 시그널을 받은 프로세스는 일시적으로 병행 수행 상태가 됨 실행 중인 프로그램과 시그널 핸들러(Handler) 병행성 : 연산과 입출력 프로세스는 입출
컴퓨터는 크게 하드웨어 / 소프트웨어로 구분한다. 소프트웨어의 구분 응용 소프트웨어 -목적 : 컴퓨터를 사용하여 주어진 문제 해결 시스템 소프트웨어 -목적 : 컴퓨터 시스템의 운영 및 효율적인 활용 지원 비동기적 동작 (Asynchronous Action) 시스템 이벤트가 임의 시간에 예상치 못한 순서로 발생하면 비동기적 동작이 발생 예) 프로그래머는 프린터의 데이터 요청 시기를 알지 못함 프로그램은 모든 가능한 타이밍에 대해 적절히 실행되어야 함 병행성 (Concurrency) 동일한 시간 프레임에 시스템 자원을 공유 예) 두 프로그램이 실행 중이며, 각 프로그램이 번갈아 수행됨. -두 프로그램은 프로세서(processor) 자원을 공유함 운영체제가 컴퓨터 시스템과 프로그램 간 병행적 동작을 관리 통신 (Communication) 하나의 개체에서 다른 개체로 정보가 이동하는 것 로컬 디바
시스템프로그래밍을 공부하기에 앞서 기본지식을 알아보도록 하겠습니다. 가상 머신 (Virtual Machine) 가상머신은 현재 사용하는 운영체제(OS) 위에 다른 OS를 애플리케이션처럼 운용할 수 있도록 합니다. 이때 현재 사용하고 있는 운영체제는 호스트(Host) OS, 가상 운영체제는 게스트(Guest) OS라 합니다. Windows에 Ubuntu(Linux)를 설치한다면 Windows가 호스트 OS, Ubuntu가 게스트 OS가 됩니. 가상머신의 장단점 가상머신은 설치가 간편하고, 구성과 백업 역시 편리하다. 삭제도 쉽다. 하지만 속도는 느리다. 일부 호스트 OS의 하드 웨어 장치를 사용하기 힘들 수도 있다 가상화에는 Full-virtualization(전가상화)와 Para-virtualization(반가상화)이 있다. 전가상화의 경우 호스트 OS 위에서 하나의 애플리케이션으로 인식된다. 해당 애플리케이션을 Hypervisor라고 부른다.