본문 바로가기
  • 개발공부 및 일상적인 내용을 작성하는 블로그 입니다.

이론/운영체제4

OS - 데드락(DeadLock) 데드락(DeadLock) 프로세스가 자원을 얻지 못해서 다음 처리를 하지 못하는 상태, '교착 상태' 라고도 부른다. 시스템 적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생한다. 위의 그림에서 프로세스1과 프로세스2가 자원 1,2를 모두 얻어야 한다고 가정해보자. t1 : 프로세스1이 자원 1을 얻음 / 프로세스2가 자원 2를 얻음 t2 : 프로세스1은 자원 2를 기다림 / 프로세스2는 자원 1을 기다림 현재 서로 원하는 자원이 상대방에게 할당되어 있어서 두 프로세스는 무한정 wait 상태에 빠진다, 이 상태가 바로 데드락(DeadLock) 이라고 한다. 주로 발생하는 경우 - 멀티 프로그래밍 환경에서 한정된 자원을 얻기 위해 서로 경쟁하는 상황 발생 - 한 프로세스가 자원을 요청했을 때, 동시.. 2022. 1. 27.
OS - 인터럽트(Interrupt) 인터럽트(Interrupt) 프로그램을 실행하는 도중에 예기치 않은 상황이 발생한 경우, 현재 실행중인 작업을 즉시 중단하고 발생된 상황에 대한 우선 처리가 필요함을 CPU 에게 알리는 것 -> 지금 수행중인 일보다 더 중요한 일, 예를 들어 입출력 또는 우선순위 연산과 같은 동작이 발생하면 그 일을 먼저 처리하고 나서 하던 일을 계속 해야한다. * 외부/내부 인터럽트는 CPU 의 하드웨어 신호에 의해 발생하고, 소프트웨어 인터럽트는 명령어의 수행에 의해 발생한다. 외부 인터럽트 입출력 장치, 타이밍 장치, 전원 등 외부적인 요인으로 발생 - 전원 이상, 기계 착오, 외부 신호, 입출력 등 내부 인터럽트 Trap 이라고 부르며, 잘못된 명령이나 데이터를 사용할 때 발생 - 0 으로 나누기가 발생하거나, .. 2022. 1. 27.
OS - 프로세스와 스레드 * 프로세스 프로그램을 메모리 상에서 실행중인 작업 * 스레드 프로세스 안에서 실행되는 여러 흐름 단위 - 기본적으로 프로세스 마다 최소 1개의 스레드를 소유하고 있다.(메인 스레드 포함) 프로세스는 각각 별도의 주소공간을 할당한다.(독립적) * Code : 코드 자체를 구성하는 메모리 영역(프로그램 명령) * Data : 전역 변수, 정적 변수, 배열 등 - 초기화된 데이터는 data 영역에 저장된다. - 초기화 되지 않은 데이터는 bss 영역에 저장된다. (bss : block started by symbol - 초기화 되지 않은 전역 데이터를 위한 영역이다.) * Heap : 동적 할당 시 사용(new(), malloc() 등) * Stack : 지역 변수, 매개 변수, 리턴 값 (임시 메모리 영역.. 2022. 1. 27.
OS - 운영체제란? 운영체제란? 일반적으로 하드웨어를 관리하고, 응용 프로그램과 하드웨어 사이에서 인터페이스 역할을 하며 시스템의 동작을 제어하는 시스템 소프트웨어로 정의한다. * 운영체제는 시스템의 자원과 동작을 관리하는 소프트웨어다. (시스템의 역할 구분에 따라 운영체제의 역할은 모두 다를 수 있다.) * 운영체제를 큰 틀로 나눠보면 아래와 같다. 1. 프로세스 관리 - 프로세스, 스레드 - 스케쥴링 - 동기화 - IPC 통신 2. 저장장치 관리 - 메모리 관리 - 가상 메모리 - 파일 시스템 3. 네트워킹 - TCP/IP - 기타 프로토콜 4. 사용자 관리 - 계정 관리 - 접근권한 관리 5. 디바이스 드라이버 - 순차접근 장치 - 임의접근 장치 - 네트워크 장치 프로세스 관리 운영체제에서 작동하는 응용 프로그램을 관.. 2022. 1. 26.