공부한 기록/운영체제 10

운영체제(9) - 입출력 시스템과 디스크 관리

입출력 모듈 입출력 모듈은 프로세스, 레지스터 등의 내부 저장장치와 물리적 입출력 장치 사이에서 이진 정보를 전송하는 방법을 제공한다. 입출력 모듈이 프로세서를 대신해서 입출력 업무를 수행하면 입출력 채널 또는 입출력 프로세서가 된다. 단순히 입출력 방법만 담당하면 입출력 제어기 또는 장치 제어기가 된다. 기능 입출력 장치 제어 프로세서와의 통신 : 명령해독, 데이터 교환, 상태 보고, 주소 인식 등을 수행. 데이터 버퍼링 : 버퍼링을 통해 속도 조절. 오류검출 입출력 방법 프로세서의 역할에 따라서 입출력 방법이 달라진다. 프로세서 제어 입출력 (프로세스가 전부 관여) DMA 입출력 입출력 채널 프로그램 제어 입출력 프로세서의 내부에 각종 레지스터가 있다는 것을 알고 있다. 프로세스 내부의 입출력 주소 ..

운영체제(8) - 가상 메모리

가상 메모리 이전 글에서 실제 메모리에 대해 다뤘다. 이는 메모리 관리 방법을 토대로 제공하는 기술이며, 각 프로그램에 실제 메모리 주소가 아니라 '가상 메모리 주소'를 주는 방법이다. 이 가상 메모리는 사용자와 논리적 주소를 물리적으로 분리해서 사용자가 메인 메모리에서 용량을 초과하는 프로세스에 가상 메모리 주소를 지정해서 메모리를 제한 없이 사용할 수 있도록 한다. 프로그램 전체를 동시에 실행하는 것이 아니라 일부만 적재해도 실행 가능하도록 한다. 즉, 보다 큰 프로그램을 적은 메모리에서 처리할 수 있게 해준다. 프로세스의 코드와 데이터는 디스크에 저장하고, 실행영역만 메인 메모리에 유지한 상태로 필요할 때만 스왑 인 앤 아웃 과정을 거쳐 프로세스를 재할당한다. 이는 메인 메모리의 '제한된 용량'과 ..

운영체제(7) - 페이징, 세그먼테이션, 페이지화된 세그먼테이션

불연속 메모리 할당 페이징 Paging 작업을 메모리관리장치(MMU)에서 작업크기가 동일한 페이지에 할당하여 처리하는 불연속 메모리 할당 방법이다. 빈 프레임에 어떤 페이지든 적재시킬 수 있기에 메모리의 효율적인 사용. 프레임 간의 외부단편화가 발생하지 않는다. 운영체제 선에서는 페이지 관리 부담이 크다. 프로세스의 필요공간이 페이지와 맞지 않으면 내부단편화가 발생할 수 있다. 논리적 주소가 전해지면 페이지 테이블에서 논리적 주소의 페이지번호(p)를 보고 알맞는 페이지를 할당한다. 그리고 실제 메모리의 위치인 프레임(f)의 값을 물리적 주소에 저장하고, 논리적 주소에 있던 오프셋(d)값을 물리적 주소에 넘긴다. 비로소 메모리에 이를 할당하면 된다. 각 테이블 항목마다 논리적 페이지 주소와 프레임번호가 있..

운영체제(6)

메모리 관리 메모리를 사용할 프로세스들을 위해 메모리를 할당, 제거, 보호하는 활동이다. %여기서 보호란, 프로세스는 적재된 메모리의 영역에서만 다뤄질 수 있으므로 다른 메모리영역으로의 접근을 막는 것이다. 메모리를 관리하는 정책은 다음과 같다. 적재 정책 fetch: 디스크->메모리로 프로세스의 반입시기를 결정하는 것. 요구 적재 : 주체에 따른 참조요청에 따라 다음에 실행할 프로세스를 적재하는 것. 예상 적재 : 시스템의 요청을 미리 예측해서 적재하는 것. 배치 정책 : 적재된 프로세스를 어느 위치의 메모리에 저장할 것인지를 결정하는 것. 저장위치에 따라 효율이 달라진다. 대치 정책 : 메모리가 충분하지 않을 때 적재된 프로세스 중에 제거할 것을 정하는 것이다. 매핑 mapping : 논리적 주소와 ..

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

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

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

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

운영체제(3)

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

운영체제(2)

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

운영체제(1)

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

728x90
반응형