[CS 스터디] 운영체제

한주영·2023년 5월 22일
0

운영체제 소개

필요성

•리소스관리
•하드웨어 추상화
•프로세스 및 메모리 관리
•파일 및 시스템 관리
•장치 및 드라이버 관리
•사용자 인터페이스
•보안 및 보호
•오류 처리 및 내결함성

정의

운영 체제(OS)는 컴퓨터 시스템의 하드웨어 및 소프트웨어 리소스를 관리하고 제어하는 중요한 소프트웨어 구성 요소이다.
사용자 , 응용프로그램 및 컴퓨터 하드웨어 간의
인터페이스 역할을 하여 효과적으로 통신하고
상호작용할수있다.

역할

•프로세스 관리
•메모리 관리
•파일 시스템 관리
•장치 관리
•사용자 인터페이스
•리소스 할당
•보안 및 보호
•오류 처리 및 내결함성
•네트워킹 및 통신
•시스템 관리

운영체제 구조

커널

커널은 운영체제의 핵심구성요소로, 메모리에 상주하며
필수 서비스와 기능을 제공한다.
CPU,메모리 및 장치와 같은 시스템 리소스 관리를
담당하며 시스템의 하드웨어 및 소프트웨어 계층간의
중개자 역할을한다.
프로세스관리, 메모리 관리 및 장치 드라이버와 같은 주요기능을 구현한다.

시스템호출

•운영체제의 필수 구성요소
•사용자 수준 프로그램이 OS에서 서비스를 요청하는 메커니즘을 제공
•시스템호출을 사용하면 사용자모드에서 실행중인 프로그램이
•커널 모드로 전환되어 권한있는 명령에 액세스하고 기본 하드웨어와 상호 작용할수있다.

프로세스

개념

•실행중인 프로그램이나 응용프로그램을 나타내는 기본개념
컴퓨터에서 실행되는 프로그램의 인스턴스로 생각할수있다
특정 작업 또는 작업을 수행하는 활성 엔티티
실행에 필요한 프로그램 코드, 데이터 및 기타리소스를
포함하는 자체 주소 공간이있다

•프로세스는 실행 중인 프로세스 간에 CPU 시간, 메모리 및 I/O 장치와 같은 시스템 리소스를 할당하는 운영 체제의 프로세스 스케줄러에 의해 관리된다.
각 프로세스에는 시스템의 다른 프로세스와 구별되는 고유한 프로세스 식별자(PID)가 할당된다.

상태

1.신규: 프로세스가 생성되거나 초기화되고 있다
2.준비: 프로세스가 프로세서에 할당되기를 기다리고 있다.
3.실행 중: 프로세스가 현재 프로세서에서 실행 중이다.
4.차단됨: 프로세스가 이벤트 또는 리소스를 사용할 수 있기를 기다리고 있다.
5.종료됨: 프로세스가 실행을 완료했거나 종료됨.

제어블록

PCB또는 TCB(작업제어블록) 이라고도 불린다
프로세스에 대한 정보를 저장하고 관리하기 위해
운영체제에서 사용하는 데이터 구조
시스템의 각 프로세스는 해당 프로세스와 관련된 중요한
세부정보 및 속성이 포함된 자체 제어블록이있다

제어 블록에 저장되는 일반적인 정보

•프로세스 상태: 프로세스의 현재 상태(예: 실행 중, 준비됨, 차단됨)을 나타낸다
•프로세스 식별자(PID): 각 프로세스에 할당된 고유 식별자.
•프로그램 카운터(PC): 프로세스에 의해 실행될 다음 명령의 주소를 추적한다.
•레지스터 값: 프로세스와 관련된 CPU 레지스터의 내용을 저장한다.
•메모리 관리 정보: 기본 및 제한 레지스터와 같은 프로세스의 메모리 할당에 대한 세부 정보를 포함한다.
•프로세스 우선순위: 스케줄링 목적으로 프로세스에 할당된 우선순위를 나타낸다.
•I/O 상태: 프로세스에 할당된 I/O 장치 및 상태를 추적한다.
회계 정보: CPU 시간, 메모리 사용량 및 I/O 작업과 같은 리소스 사용량 통계를 추적한다.

문맥교환

실행중인 프로세스의 현재 상태를 저장하고
실행을 허용하기위해 다른 프로세스의 상태를 복원하는 프로세스
CPU를 한 프로세스에서 다른 프로세스에서 전환하여 프로세스 실행이 원활하고 동시에 사용자에게 표시되도록 한다.

문맥교환이 발생하는경우?

멀티태스킹

-실행가능한 프로세스들이 운영체제의 스케줄러에 의해 조금씩 번갈아가면서 수행되는 것
-번갈아가면서 프로세스가 CPU를 할당받는데 이때 문맥교환이 일어난다.
-사용자가 체감하기 힘든 속도로 일어나며 프로세스가 처리되기 때문에 동시에 처리되는것 처럼 느껴진다

인터럽트 핸들링

-인터럽트란 컴퓨터시스템에서 예외상황이 발생할때 CPU에게 알려 처리할수있도록 하는 것을 말한다.
-인터럽트가 발생하면 문맥교환이 일어난다.
-I/O request : 입출력 요청
-time slice expired : CPU 사용시간이 만료
-fork a child : 자식 프로세스 생성
-wait for an interrupt : 인터럽트 처리 대기

profile
백엔드개발자가 되고싶은 코린이:)

0개의 댓글