CH7. Memory Management
·
Computer Science/컴퓨터구조 | 운영체제
#Background 메인 메모리, 레지스터_CPU가 직접 접근할 수O 유일한 저장장치 ㄴ프로그램이 실행되기 위해 -> 메모리로 적재 -메모리 하드웨어 ㄴ주소 + 데이터 읽기 요청/ 주소 + 데이터 쓰기 요청 -기본 하드웨어 레지스터 접근 -> 1 CPU clock 필요 / 메인 메모리; 사이클 ↑ 필요 + 멈춤현상(stall) 발생 / 캐시(Cache); 메인 메모리, CPU 레지스터 사이 존재 올바른 연산 보장 -> 메모리 보호 요구 *기준(Base) 및 상한(Limit) 레지스터 : 논리 주소 공간 정의 CPU_사용자 모드에서 생성 모든 메모리 주소 -> 사용자 기준, 상한 범위에 속하는 지 검사 *하드웨어 주소 보호 메모리 공간의 보호 : CPU 하드웨어가 사용자 모드에서 만들어진 모든 주소와 레..
CH6. CPU Scheduling
·
Computer Science/컴퓨터구조 | 운영체제
#Basic Concepts CPU 스케줄링: 다중 프로그램 운영체제의 기본 ㄴ다중 프로그램 목적: CPU 이용률 최대화 *CPU-I/O Burst Cycle 프로세스 실행: CPU 실행-입출력 대기의 사이클(CPU burst -> I/O burst) -CPU-burst 시간의 히스토그램 주요 관심사: CPU burst 분포 ㄴ짧은 CPU burst ↑ (입출력 중심의 프로그램이 전형적으로 가짐) *CPU 스케줄러(Short-term scheduler) : CPU가 유휴 상태 시, 준비 큐에 있는 프로세스들 중 하나의 프로세스 선택 CPU를 그 프로세스에게 할당/ 큐는 다양한 방식으로 정렬 가능O -CPU 스케줄링 결정이 발생하는 4가지 상황 1) running -> waiting 2) running -..
CH5. Process Synchronization
·
Computer Science/컴퓨터구조 | 운영체제
#배경 *프로세스는 병행 OR 병렬도 실행 데이터의 비일관성 : 언제든지 실행 중 인터럽트 당할 수 있고 부분적으로 완료될 수 있다 *문제 상황 협력적인 순차적 프로세스 OR 스레드로 구성된 시스템 비동기적으로 수행하면서 데이터 공유 ㄴ생산자-소비자 문제: 메모리 공유(=유한 버퍼) *Problem: Producer/ Consumer 문제: 동기화를 위해 (BUFFER_SIZE – 1)개 까지만 버퍼 사용 -Producer while (true) { /* produce an item in next produced */ while (((in+1) % BUFFER SIZE) == out); /* do nothing */ buffer[in] = next_produced; int = (in + 1) % BUFF..
CH4. Threads
·
Computer Science/컴퓨터구조 | 운영체제
#개요 : CPU 이용 기본 단위 여러 작업하는 응용프로그램 -> 각 작업 별 스레드 생성 + 구현 *장점 프로세스 생성은 스레드 생성에 비해 할 일 ↑ + 시간 ↑ => 스레드 사용 시 코드 간결 + 효율 ↑ ex. 워드 프로세서 (그래픽 표시 스레드/ 키보드 입력 받는 스레드/ 철자법과 문제 체크 스레드) *다중스레드 서버 아키텍처 ex. 웹 서버 클라이언트 요청을 listen하는 별도 스레드 생성 요청 -> 요청 서비스할 새로운 스레드 생성 대부분의 현대 응용프로그램은 다중스레드 사용 공유: 코드와 데이터 섹션, 자원(열린 파일 OR 신호) 각자 소유: 스레드 ID, 프로그램 카운터, 레지스터 집합, 스택 #이점 -응답성(Responsiveness) : 프로세스의 일부가 블록 되더라도 계속 실행 가..
CH3. Process
·
Computer Science/컴퓨터구조 | 운영체제
#프로세스 개념 운영체제 다양한 프로그램 실행 ㄴ시분할 시스템_사용자 프로그램(user programs) OR 태스크(tasks) *프로세스(Process) -실행 중인 프로그램 : 프로그램 카운터와 프로세스 레지스터를 포함한 현재 진행 중인 활동 -프로세스의 실행; 순차적 형태 진행 -다양한 부분 텍스트 섹션(text section): 프로그램 코드 스택(stack): 임시 데이터 저장(e.g. 함수 매개변수, 복귀 주소, 지역 변수) 데이터 섹션(data section): 전역 변수 힙(heap): 실행 중 동적으로 할당되는 메모리 영역 프로그램; 디스크에 저장된(실행 파일) 수동적(passive) 개체 프로세스; 능동적 개체_실행 파일이 적재될 때 프로그램은 프로세스가 됨 프로그램 실행 방법 : 아..
CH2. Operating System Structures
·
Computer Science/컴퓨터구조 | 운영체제
#운영체제 서비스 개발자; 프로그램 실행 환경 제공/ 프로그램 및 사용자; 서비스 제공 *프로그래머에게 편리함을 제공하는 기능 -사용자 인터페이스 : 명령 라인(CLI), 그래픽 사용자 인터페이스(GUI) -프로그램 실행 : 프로그램 메모리 적재 -> 해당 프로그램 실행 -> 정상적 OR 비정상적 방식 종료(오류 시 표시) -I/O 작업 : 실행 중인 프로그램 입출력 요구 -> 입출력 실행 수단 제공 -파일 시스템 조작 : 프로그램은 파일/디렉토리 읽기.쓰기.만들기.삭제.탐색.파일정보나열.권한관리 -통신 : 동일한 컴퓨터 내 프로세스 간_공유 메모리, 메시지 전달 / 네트워크로 연결된 컴퓨터 내의 프로세스 간 -오류 감지 : CPU, 메모리, 하드웨어, I/O 장치, 및 사용자 프로그램 발생가능O 각 유..
0123suh
'분류 전체보기' 카테고리의 글 목록 (23 Page)