본문 바로가기

Computer Science/Operating System5

🌌운영체제 구조 운영체제 역할 프로그램이 실행되는 환경을 제공해 준다. 운영체제가 가지는 목표 제공하는 서비스 사용자와 프로그래머에게 제공하는 인터페이스 시스템 구성요소와 그들의 상호연결 운영체제 구조 운영체제 서비스 사용자 인터페이스 제공 프로그램 실행 입출력 연산 파일 시스템 조작 통신 오류탐지 자원할당 기록작성 보호와 보안 시스템콜 운영체제에 의해 사용가능한 서비스에 대한 인터페이스를 제공 시스템 콜을 부르는 것 보다 API에 따라 프로그래밍 하는걸 선호하는 이유 프로그램 호환성 : 같은 API를 지원하는 어느 시스템에서건 컴파일 되고 실행될 수 있다. 시스템 콜은 자세한 명세가 필요하고 프로그래머가 작업하기 어렵다. RTE: 실행시간 환경 시스템 콜에 대한 연결고리를 하는 시스템 call Interface를 제공.. 2020. 6. 17.
🚗Process 프로세스란 실행 중인 프로그램이며 프로세스의 현재 활동 상태는 프로그램 카운터와 다른 레지스터로 나타난다. 현대 컴퓨팅 시스템의 작업 단위이다. *프로그램: 명령어 리스트를 내용으로 가진 디스크에 저장된 파일 *프로세스 자체가 다른 개체를 위한 실행 환경으로 동작할 수도 있다. 프로세스의 메모리 레이아웃 스택 - 함수를 호출할 때 임시 데이터 저장장소(함수 매개변수, 복귀주소, 지역변수) (아래로 메모리 확장됨) (스택과 힙 메모리가 만나면 안됨) (위로 메모리 확정됨) 힙 - 프로그램 실행 중 동적으로 할당되는 데이터 데이터 - 전역변수 텍스트 - 실행코드 프로세스 상태 준비 실행 대기 종료 프로세스 제어 블록 PCB 운영체제의 프로세스를 나타내는 커널 데이터 구조 프로세스 상태 프로그램 카운터 CPU.. 2020. 6. 16.
🥓Thread 스레드란 : CPU 사용의 기본 단위를 나타내며 동일한 프로세스에 속하는 스레드는 코드 및 데이터를 포함하여 많은 프로세스 자원을 공유한다. 멀티 스레드 응용 프로그램의 이점 응답정 자원공유 경제성 확장성 병행성과 병렬성 병행성: 단일 CPU가 있는 시스템에서 여러 스레드가 진행 중일 경우 병렬성: 멀티 코어 시스템에서 여러 스레드가 동시에 진행 중인 경우 다중 스레드 응용 프로그램 설계 도전과제 작업 분할: 스레드별 작업을 분할하는 기준 모호 균형 조정: 스레드간 작업량이 균등해야함 서로 다른 스레드 간 데이터 분할 데이터 종속성 식별 테스트 및 디버깅 어려움 데이터 병렬 처리 vs 작업 병렬 처리 데이터 병렬 처리: 동일한 데이터 부분 집합을 다른 컴퓨팅 코어에 분산시키고 각 코어에서는 동일한 연산 .. 2020. 6. 16.
🚀CPU 스케줄링 알고리즘 CPU 스케줄링이란? 준비큐에서 대기 프로세스를 선택하고 CPU를 할당하는 작업 디스패처에 의해 선택된 CPU가 프로세스에 할당된다. 선점 vs 비선점 기법 선점 : CPU를 프로세스로 부터 뺏을 수 있는 경우 비선점: 프로세스가 자발적으로 CPU 제어를 포기하는 경우 거의 모든 최신 운영체제가 선점적이다. 스케줄링 알고리즘의 평가기준 CPU 이용률 처리량 총 처리시간 대기 시간 응답 시간 스케줄링 알고리즘 선입 선처리 스케줄링(FCFS) + 가장 간단한 스케줄링 알고리즘이다. - 매우 긴 프로세스를 기다리게 할 수 있다. 최단 작업 우선 스케줄링(SJF) + 최적이며 평균 대기시간이 가장 짧다. - 다음 CPU 버스트의 길이를 예측하기 어려워 구현하는게 어렵다. 라운드 로빈 스케줄링(RR) : CPU를.. 2020. 6. 16.
OS #1 - Operating System Introduction. 앞으로 배울것들 what operating System Do Computer-System Organization Computer-System Architecture Operating-System Structure Operating-System Operations Process Management Memory Management Storage Management Protection and Security Kernel Data Structure Computing Environments Open-Source Operating System 학습의 목표 컴퓨터 기본구조 파악한다. OS에서 중요한 구성요소에 대해 알아본다. 컴퓨팅 환경에 대한 전반적인 시각을 가진다. open source os 경험한다. Opera.. 2020. 4. 20.