본문 바로가기

728x90
반응형
OS
728x90
반응형
15

프로세스(2) : 메모리에 저장된 프로세스, 프로세스의 상태 메모리에 저장된 프로세스 그림: 프로세스가 함유하고 있는 것들! 각 섹션마다 다른 정보들 갖고 있음 stack heap data text stack section: 일시적인 데이터 포함되는 부분. 함수 파라미터, 복귀 주소, 지역 변수 같은 거 heap section은 프로세스 런타임 동안 동적으로 할당된 메모리 영역임(malloc 같은) data section은 전역 변수 text section: 프로그램 코드 부분. 현재 활동상태(program counter), 프로세스의 레지스터 내용을 갖고 있음 근데 이거 표 옆에 어떻게 붙임.. 아시는 분 계시면 댓글로 알려주시면 감사하겠습니다! ㅋㅋㅋ Running(실행)에서 프로세스 수행이 완료되기 전에 프로세스에게 주어진 프로세서 할당 시간이 종료되면(ti.. 2020. 8. 2.
프로세스 (1): 정의, 프로그램과의 차이 프로세스란 실행 중인 프로그램 혹은 시스템의 작업 단위를 말한다. 예를 들어 내가 크롬에서 4개의 탭을 실행시키고 있다면, 한 프로그램(=크롬)으로 4개의 프로세스(=탭)을 만들어서 돌리고 있는 것! 그래서 시스템은 프로세스들의 집합으로 구성된다고 하고, 운영체제 프로세스는 시스템 코드를 실행하는 역할, 사용자 프로세스는 사용자 코드를 실행하는 역할을 맡으며, 이 프로세스들은 병렬로 처리가 가능하다!(time-sharing) 실행 중인 프로그램은 작업을 완수하기 위해 CPU, 메모리, 파일, I/O 디바이스 등의 자원들을 필요로 하는데, 이 자원들은 프로세스가 생성될 때 혹은 실행되는 중간에 할당된다. 초기의 컴터 시스템은 한 번에 하나의 프로그램만을 수행할 수 있어서 실행되는 프로그램이 시스템에 대한 .. 2020. 8. 2.
시스템 호출의 유형: 프로세스 제어, 파일 조작, 장치 관리, 정보 유지, 통신 1. 프로세스 제어 실행 중인 프로그램은 실행을 정상적으로 혹은 비정상적으로 끝낼 수 있어야 하는데, 전자를 '끝내기 end', 후자를 '중지 abort'라고 한다. 이런 행동을 할 때 시스템 콜이 발생한다는 건데, 이외에도 적재, 실행, 프로세스 생성/종료/속성획득/속성설정, 시간 기다림, 사건 기다림/알림, 메모리 할당/자유화 등을 위해서도 발생한다. 2. 같은 맥락으로 파일 조작에서도 파일 생성/삭제, 열기, 닫기, 읽고 쓰고 위치 변경, 파일 속성 획득 및 설정 3. 장치 관리에서는 장치를 요구/방출, 읽기 쓰기 위치 변경, 장치 속성 획득 및 설정, 장치의 논리적 부착 및 분리 4. 정보 유지에서는 의 설정과 획득 5. 통신에서는 통신 연결의 생성, 제거, 메시지의 송수신, 상태 정보 전달, 원.. 2020. 7. 30.
System Call 시스템 호출, 그리고 API 시스템 호출은 운영체제가 제공하는 서비스에 대한 인터페이스를 제공함 각 동작을 할 때마다(인터페이스를 필요로 할 때마다) 시스템 호출이 필요하다고 보면 됨. ex) 한 파일로부터 데이터를 읽어 다른 파일로 복사하는 프로그램일 때, 1. 입력 파일 이름 획득을 위한 인터페이스(키보드) 2. 화면에 프롬프트를 출력하기 위한 인터페이스(윈도우) 3. 입력을 받아들이기 위한 인터페이스 4~6. 1~3이랑 똑같은 건데 출력용 7. 입력 파일 열기 인터페이스(마우스) 8. 파일이 존재하지 않을 경우, 비정상적으로 종료하는 인터페이스(콘솔, 메세지 출력) 9~10. 7~8이랑 똑같은 건데 출력용 ... 이렇게 많은 인터페이스를 제공해야 할 때마다 각기 다른 시스템 호출이 일어나는 것! => 보통 간단한 프로그램이라도.. 2020. 7. 30.
인터럽트 Interrupt 인터럽트: Device가 CPU에게 동작이 끝났다고 알리는 동작 인터럽트가 필요한 이유: 입출력을 기다리긴 너무 힘드뤄,,, 인터럽트를 이용하여 작업 중간에 다른 프로그램이나 명령어를 수행 가능하게 함으로써 시스템의 처리 효율을 향상한다. 인터럽트의 발생 하드웨어: 시스템 버스를 통해 CPU에 신호 전송 소프트웨어: system call을 통해 인터럽트 발생 (밑에 내부 인터럽트) 인터럽트의 종류 외부 인터럽트: 입출력 장치, 타이밍 장치, 전원 등 외부적인 요인에 의해 발행하는 인터럽트 - 전원 이상 인터럽트: 정전이나 전원에 이상이 있는 경우 - 기계 고장 인터럽트: CPU 등의 기능적인 동작 오류가 발생한 경우 - 입출력 인터럽트: 입출력의 종류 등의 이유로 CPU의 수행을 요청하는 인터럽트 내부 .. 2020. 7. 30.