Domain (72) 썸네일형 리스트형 [운영체제] 1. Introduction Operating System 컴퓨터의 시스템 자원을 효율적으로 관리하여 사용자가 컴퓨터를 편리하고, 효과적이게 사용할 수 있는 환경을 제공하는 시스템 소프트웨어이다. OS's Main Topic 1. Virtualization 물리적 자원을 추상화 시켜 더 강력하고 사용하기 쉬운 가상 자원의 형태로 바꾸는 작업. 2. Concurrency 여러 프로세스가 동시에 수행될 때 성능은 효율적으로 유지시키며 협력적인 태도로 자원을 공유하게 만드는 작업. 3. Persistency 휘발적인 특성의 Main memory(DRAM)을 영속적인 Storage에 명시적으로 저장하는 작업. Policy & Mechanism Policy: Which(or what) to do? 예시. 어린이 보호구역에서 과속을 금지 Me.. 1. What is System Programming 컴퓨터의 구성 요소 Compilation System 계층 구조 High level Language Assembly Language Machine Language(Binary code) Operating System Resource manager 동작 단계 Runtime System command : 명령어 shell : 명령어 해석기 library : 유저가 자주 사용하는 함수의 집합. Relocatable objects 2. Programming Environment Linux Generalization of FIle Concept Unix Linux는 Unix의 영향을 받아 만들어진 운영체제이다. Unix의 핵심 객체 File : stream of bytes Process(task) : program in execution Linux file format Compilation in Linux 3. File Programming Disk Structure Disk accses sector addressing 방식을 이용한다. Seek time : 헤드가 적절한 트랙 위치까지 움직이는 시간 Rotational latency : 헤드 아래로 섹터가 나타날 때 까지 걸리는 시간 Transmission time : 요청한 섹터의 read/write 시간 위의 접근 시간을 줄이는 방법 SACN(elevator algorithm) : 기존엔 하드 디스크가 순서대로 서비스를 했으나 헤드가 특정 트랙으로 가는 동안 어떤 서비스가 있으면 그 서비스를 실행하고 이동한다. → seek time이 감소한다. RAID(Redundant Array Inexpensive Disk) : Disk가 메모리에 비해 느려 disk를 여러개 붙여서 만드는 방법. .. 4. Process Structure 프로세스(Process) 프로세스란 수행중인 프로그램으로 메모리 공간과 context(문맥) 정보가 있다. 프로세스는 스케쥴링의 대상이며 프로세스는 서로 자원으로 경쟁하게 된다. 또한 프로세스는 부모 자식 관계를 갖는다. Process Structure Text : 프로그램 코드 Data : 전역변수가 저장되는 영역 Stack : 지역변수, 매개변수, return address 등이 저장되는 영역 Heap : 동적 할당된 값이 저장되는 영역 Stack Detail 5. Task Programming Task-Related System Call Task creation fork() Make a new task (same memory image of parent task) Split the flow control into two (시스템적 관점) Two return value (프로그램 관점) - parent : 자식의 pid / child : 0 Task Execution execve Replace the current task's meemory image with new binary The role of loader Shell Command Interpreter 기본 기능 Display prompt, input parsing Internal command : perform in shell Exter.. 6. IA Assembly Programming Assembly Language 언어 계층 구조적인 관점에서 고급 언어와 기계어 사이에 있는 언어이다. 기계어의 Symbolic한 표현이다. -사용 영역 : 하드웨어 제어, 취약성 테스트, 최적화, SW 저작권 보호, SW 유사성 분석, 프로그램 제작, 디버깅, 분석 등 ISA(Instruction Set Architecture) Register model Memory model Instruction model Register Model register는 cpu 내부의 소형 메모리 공간이며 메인 메모리에 비해 접근이 빠르다는 이점이 있다. 1. General Purpose Register 특별한 용도로 사용될 수 있지만 다른 범용적인 용도로도 사용되는 레지스터 EAX(accumulator) : 산술연산 .. 7. IA : History & Features IA(Intel Architecture)의 특징 IA는 CISC의 특징과 RISC의 특징을 모두 갖고 있다. CISC의 특징 명령어 길이가 가변적이고, operand의 수 또한 가변적이다. 다양한 operand addressing mode가 있다. 함수 호출을 stack을 기반으로 한다. SIMD를 지원한다. RISC의 특징 Micro-operations(하나의 명령어를 다시 세부(마이크로) 명령어로 나누어 pipeline으로 연산한다.) Load - Store Architecture Independent Multi-units Out-of-order execution 레지스터를 기반으로한 함수 호출 Register renaming Operand Addressing Mode 예제 Base plus Scal.. 이전 1 ··· 3 4 5 6 7 8 9 다음