본문 바로가기

3학년 1학기

abstract away 의 뜻 #Def abstract away 사전적 의미 : consider apart from a particular case or instance 즉, 특정 사건, 특정 케이스에서는 상관하지 않겠다는 뜻이다. 다만, 컴퓨터공학 분야에서 사용되는것은 좀 다른것 같다. it abstracts away x. means that it hides x by using a layer of "abstraction", by abstracting you hide all the numereous facettes of the real object, making it simple to see/use/explain. 즉, x를 abstaction 시켜서 누군가에게 사용하지 못하게 하는것이다.Software Architecture는 고의.. 더보기
#OS 정리 - Computer network / Computer Communication 출처 : http://en.wikipedia.org/wiki Computer network A computer network or data network is a telecommunications network that allows computers to exchange data.In computer networks, networked computing devices pass data to each otheralong data connections.The connections (network links) between nodes are established using either cable media or wireless media. The best-known computer network is the .. 더보기
Memory Management #3 Memory 배치 알고리즘(Best-fit , First-fit, Next-fit) 트럭에 짐을 넣는 알고리즘에사용되는 Best-fit , First-fit , Next-fit 이 OS에서도 사용 된다! 프로세스가 메인메모리에 적재되기전"나의 용량은 99M입니다. 제가 들어갈 수 있을 만큼의 용량을 저에게 주세요."라고 말할 것이다. 여기서 중요한것 첫째! 제가 들어갈 수 있을 만큼의 용량을 저에게 주세요.물론 프로세스보다 크거나 같은 주기억장치의 가용(free) 블록중 하나를 줄것이다. 그리고 두번째!운영체제는 어떻게,어떠한 방법으로 찾아서 해당 메모리를 프로세스에게 할당해줄것인가?바로 Best-fit , First-fit , Next-fit 방법을 사용하여 줄것이다. 위의 그림에서 보자면, 16M의 프로세스가 메인 메모리에 load되려고 한다. Best - fit : 처음부터 끝까지.. 더보기
Memory Management #2 - 메모리의 분할, 고정분할/동적분할 ※Memory Management 메모리 관리의 주된 작업은 처리기(프로세서)에 의해 실행될프로세스(프로세스 이미지)를 메인 메모리로 가져오는것이다. 모든 멀티프로그래밍 시스템에서는 가상 메모리라는 기법을 사용하는데,이 가상 메모리는 세그멘테이션과 페이징이라는 기법을 기반으로 설계되었다.가상 메모리는 하나의 기법을 이용하거나 둘의 기법을 다 사용할 수 있다. 우선 가상 메모리를 사용하기 전에 사용된 여러 기법들이 있다. 그 기법들을 먼저 알아보고자 한다. ※Memory Partitioning ( Fixed Partitioning / Dynamic Partitioning ) 운영체제는 메인메모리의 일부 고정된 부분을 차지하고 나머지 부분은 다수의 프로세스들의 사용을 위해 남겨준다. 이 사용가능한 메인 메모.. 더보기
메모리 관리, Memory management 단일 프로그래밍에서는 메인 메모리가 2파트, 2가지의 공간으로 나뉜다. 첫째, 운영체제를 위한 공간둘째, 현재 수행중인 프로그램(current running program)을 위한 공간 단일프로그래밍 이란?항상 시스템내에 한가지의 프로세스만 존재.다른 프로세스가 실행되려면 현재 실행중인 프로세스가 끝나야만다른 프로세스가 실행 가능한 시스템. 하지만, 다중 프로그래밍에서는 메인 메모리가 여러 파트, 여러 공간으로 나뉜다.다중 프로그래밍에서 메인 메모리에 있는 user's memory 라는 부분이 있는데,다중프로그래밍은 여러 프로세스들이 실행되므로 여러 프로세스들을 수용하기 위해더 여러부분으로 나뉘어진다. 여러 프로세스들이 실행,중단,종료 등 다양한 행동을 보여주는데이때 우리는 이것을 예측할 수 가 없다. .. 더보기
Software Engineering #1 -소프트웨어 공학(Software Engineering)이란? 공학(工學, engineering)이란 일반적으로 과학(科學, science)과 수학을 기초로 하여 구조나 기계, 생산 공정, 시스템 등을 생산에 합리적이고 체계적인 방법을 적용시키는 학문을 말한다. 이러한 공학적 원리에 의하여 소프트웨어를 개발하는 학문이 바로 소프트웨어공학(-工學, software engineering)이다. 즉 소프트웨어공학은 소프트웨어를 분석, 설계, 개발, 운영, 유지보수 등 개발수명주기 전반에 걸친 계획·개발·검사·보수·관리, 방법론 등을 연구하는 분야이며, 개발이전단계(pre-development process), 개발단계(development process), 개발이후 단계(post-development proc.. 더보기
Process Swapping, Suspended Process, 7-State-suspend 프로세스의 세가지 기본 상태(준비,수행,블록)는 프로세스의 행위,행동을 모델링하는데 있어서 체계적인 방법을 제공하고, 운영체제의 설계,디자인,구현 방향에 알려준다. 어떤 운영체제는 이 세가지 기본 상태만을 사용하여 구축하기도 한다. 하지만 이로는 부족하기도 하다. 수행될 프로세스는 주기억장치(main-memory)에 완전히 load되어야 하고, 그럼 모든 큐에 있는 모든 프로세스들이 주기억장치에 상주해야한다. 프로세스의 수행속도는 운영체제의 입출력 시스템보다 훨씬 빠르기때문에 일반적으로 메모리에 있는 모든 프로세스들은 입출력 장치의 수행이 완료되기까지 기다려야 하므로 상당히 긴 시간을 idle-state에 있게된다. idle state는 유휴상태를 뜻한다. 더 많은 프로세스들을 수용하기 위해 주기억장치를.. 더보기
Two-State Processor model Two-State Processor model Processor의 state는 상태를 뜻한다. 현재 수행중인지 아니면 수행중이 아닌지, 즉 Running State 혹은 Not Running State 인지를 뜻하는 것이고, 이를 Two-State Processor model 이라고 칭한다. OS의 주요 업무는 processor의 수행을 control 하는것이다. processor의 수행을 control할 OS의 구현/설계 방법 중 프로세스가 보여주는 행위(behavior)를 기술하는것이 가장 첫단계이다. 쉽게 말하자면, processor의 control을 수행하려면 processor가 어떤 상황에서 어떠한 behavior, 어떠한 행위,행동을 보이는지를 OS가 알아야한다! 예를 들면, 어떠한 시점에서,.. 더보기
Process Control Block,프로세스 컨트롤 블록,PCB 프로세스 컨트롤 블록은 운영체제가 생성하고 관리하는 자료구조(data structure)이다. 위의 그림을 제외하고도 여러 요소가 프로세스 컨트롤 블록, 즉, PCB의 요소이다. *식별자 : 각 프로세스를 다른 프로세스들과 식별/구별하게 해주는 유일한 요소 *상태 : 프로세스 상태를 의미한다. 프로세스가 현재 수행중이면 running 상태이다 *우선순위 : 다른 프로세스들에 대해 상대적인 우선순위 *프로그램 카운터 : 프로그램에서 다음에 수행될 명령어의 주소 *메모리 포인터 : 프로세스와 연계된 프로그램 코드 및 데이터, 다른 프로세스들과 함께 공유되는 메모리 블록들에 대한 포인터 *문맥 데이터 : 프로세스가 수행중일때, 처리기의 레지스터에 존재하는 데이터. *입출력 상태 정보 : 미해결 입출력 요청 ,.. 더보기
The Operating System as Resource Managers The Operating System as Resource Managers. 컴퓨터는 data를 이동하고,저장하고,실행하는 resources들의 집합이다. 그리고 운영체제는 이 resources들을 관리해야하는 책임이 있다. 운영체제는 프로세서에게 명령어들을 제공한다. 다만 중요한, 핵심 차이는 프로그램에 의도에 있다. 운영체제는 프로세서에게 다른 시스템 자원의 사용을 지시하며, 다른 프로그램이 수행될 시험을 결정해준다. 그러나 이런 프로그램을 수행하려면 프로세서는 운영체제 프로그램을 일시중지 다른 프로그램을 수행하도록 제어(control)을 양도해준다. 프로세서가 다른 프로그램을 수행 완료하고, 그 후의 작업(프로그램)의 수행을 준비하는 시간동안 제어(control)를 다시 받는다. 운영체제가 관리하는.. 더보기