오늘도 기록하는 중 GitHub

CS/OS 15

운영체제(5) - 교착 상태와 기아 상태

교착 상태 Deadlock 교착상태란? 교착상태Deadlock란, 다중 프로그래밍 시스템에서 프로세스가 결코 일어나지 않을 사건을 기다리는 상태를 말한다. 프로세스는 자원을 요청 -> 사용 -> 해제 순으로 사용한다. 이러한 프로세스가 두 개 있다고 가정해보자. 교착상태는 두 프로세스가 하나의 자원을 서로 요청하여 기다릴 때 발생한다. 교착상태에 빠지면 작업이 정지되어 명령 실행이 불가해진다. 따라서 운영자나 사용자는 작업을 교체하거나 종료하는 등의 외부 간섭으로만 해결할 수 있다. 교착상태의 간단한 예를 들 수 있다. 스풀링이 있다. 스풀링은 버퍼링보다 빠른 디스크를 이용한 임시저장공간이다.이러한 스풀 공간에서 출력을 하나도 완료하지 않은 상태에서 입력만 받으면 공간이 모두 차버려서 교착상태가 발생할 ..

CS/OS 2022.10.09

운영체제(4)-병행프로세스와 상호배제

병행 프로세스 운영체제가 프로세스를 빠르게 전환하여, 프로세스 여러 개를 동시에 실행하는 것처럼 보이게 하는 것. - 병행 프로세스의 종류 - 독립 프로세스: 단일 처리 시스템에서 수행하는 병행 프로세스. 다른 프로세스에게 영향을 주거나 받지 않으면서 독립적으로 실행한다. - 협력 프로세스: 다른 프로세스와 상호작용하며 특정 기능을 수행하는 비동기적(동시에 일어나지 않는)프로세스이다. + 예: 두 프로세스가 동일한 파일을 사용할 때, 한 프로세스는 읽기를 할 수 있고, 한 프로세스는 읽기 작업과 작업 시간을 맞추지 않고 쓰기를 할 수 있다. % 협력프로세스는 입출력 장치나 메모리, 프로세서 등의 자원을 서로 사용 시 충돌이 발생할 수 있다. 이때, 상호배제가 필요한 것이다. 병행성 여러 프로세스를 이용해..

CS/OS 2022.10.04

운영체제(3)

프로세스 ================================= 프로세스 (process): 실행 중인 프로그램, 스택, 힙, 데이터 같은 메모리 구조와 레지스터처럼 현재 사용 중인 자원에 대한 정보를 갖고 있는 동적인 개체이다. 병행하는 프로그램들은 자원을 공유하고 이를 제어하는 것이 필요한데, 이는 프로새스의 '역할'이다. - 스택(stack): 데이터를 일시적으로 저장하는 공간. 지역변수에 사용되고 이 범위가 밖으러 나갔을 때 해제된다. 호출한 함수의 반환 주소, 값, 매개변수 등에 사용된다. 함수를 호출하면 힙(heap)의 방향으로 늘어나고, 반환하면 줄어든다. 스택 포인터와 힙 포인터가 만나면 메모리가 소진되었다는 뜻. - 힙(heap): 사용자가 직업 관리하는 주소 영역. 사용자에 의해 ..

CS/OS 2022.09.15

운영체제(2)

운영체제 #운영체제의 기능 운영체제는 하드웨어의 자원 요소들을 관리한다. 자원은 다음과 같다. 메모리, 프로세스(실행중인 프로그램), 주변장치(입출력), 파일(데이터) 관리 -메모리 관리:메인 메모리이며, 메모리에 어느 프로세스를 할당할 것인가, 누가 사용하고 얼마나 할당할 것인가를 정하고 관리한다. -프로세스 관리: 실행 전 자원 할당. 실행 중인 프로그램도 가능. -입출력장치 관리: 운영체제는 장치 드라이버를 사용해서 입출력장치와 상호작용한다. 여기서 장치 드라이버란, 입출력 장치 같은 특정 하드웨어에 상주하고 있는 프로그램이다. -파일 관리: 파일에 대한 저장, 삭제, 생성, 검색 기능을 일컫는다. 운영체제는 시스템을 관리하기도 한다. 사용자의 권한으로 데이터를 암호화하거나 사이트 접속 시 다른 사..

CS/OS 2022.09.10

운영체제(1)

개념과 발전 목적 개념 운영체제란? 사용자(USER)와 하드웨어(Hardware) 사이의 매개체 역할을 하는 소프트웨어이다. 응용 프로그램을 실행 및 제어하거나 자원을 할당 및 제어하며, 데이터를 관리하는 서비스를 제공한다. 소프트웨어는 시스템 소프트웨어, 유틸리티, 응용 프로그램 등으로 구성된다. 시스템 소프트웨어: 컴퓨터 자원관리, 응용 프로그램 실행 지원 및 제어. 운영체제와 장치 드라이버를 포함한다. 유틸리티: 응용프로그램보다 작은 보조 프로그램이다. 컴퓨터 처리 과정을 보조하며 시스템 유지 및 성능 개선을 하여 운영체제를 돕는다. 예를 들어 탐색기가 있다. 발전목적 편리성, 효율성, 제어 서비스 향상으로 나뉜다. 편리성: 사용자의 편리한 프로그램 개발 환경뿐만 아니라 응용프로그램에 대한 사용자 ..

CS/OS 2022.09.06
반응형