컴퓨터과학

운영체제 (1)

영웅*^%&$ 2018. 1. 18. 03:26
728x90

운영체제의 기능

1 인터페이스의 정의 (하드웨어와 사용자간에)

2 하드웨어를 공동으로 사용

3 사용자 간의 자원스케줄링, 자원 할당자 역할

4 입출력 보조 역할

5 오류를 처리 


운영체제는 컴퓨터 시스템의 자원들을 효율적으로 관리하여 사용자가 컴퓨터를 편리하고 효과적으로 
사용할 수 있는 환경을 제공한다 

효율성
처리능력(throughput) 증가
신뢰도(reliability) 증가 
응답시간(turn around time) 감소 
사용가능도(availability) 증가

컴파일                                                        인터프리터
프로그램 전체를                                        한 줄 번역후 곧바로 실행
목적프로그램으로 번역한 후                        (목적 프로그램 생성 x)
링킹작업을 통해서
실행가능한 프로그램 작성  
(한 번 번역 후 다시 번역하지 않으므로)


실행 속도가 빠르다                                   매 번 번역해야 하므로 실행속도가 느리다

FOTRAN, COBOL
,C C++, PASCAL                                                                BASIC, LISP, APL 

                                                             한 번에 한 줄씩 처리하므로 시분할 시스템에 유용하다 




컴퓨터 시스템은 다음과 같이 구성된다 
사용자 응용프로그램  유틸리티   하드웨어  

운영체제에 대한 설명
다중 사용자와 다중 응용프로그램 환경하에서 자원의 현재 상태를 파악하고 자원분배를 위한 스케줄링을 담당한다
CPU, 메모리공간 기억장치, 입/출력 장치등의 자원을 관리한다
입/출력 장치와 사용자 프로그램을 제어한다  
운영체제는 스스로 어떤 유용한 기능도 수행하지 않고 다른 응용프로그램이 유용한 작업을 할 수 있도록 환경을 마련해준다 
운영체제는 중앙처리장치의 시간, 메모리 공간, 파일, 기억장치 등의 자원을 관리한다
운영체제는 응용프로그램 유지보수는 하지 않는다 

운영체제의 성능평가 요인
사용가능도는 컴퓨터 시스템내의 한정된 각종자원을 여러 사용자가 요구할 때 어느 정도 신속하고 충분히 지원해 줄 수 있는 지의 정도이다 이는 사용가능한 하드웨어 자원의 수나 다중 프로글그래밍 정도 등의 요소가 좌우하는 것으로 같은 종류의 시스템 자원 수가 많을 경우에는 사용가능도가 높아질 수 있다 

어셈블리어 
기계어와 1:1 대응시켜 코드화한 기호언어
어셈블리어를 작성한 원시프로그램은 어셈블러를 통해 목적프로그램(기계어)로 어셈블하는 과정을 거쳐야 한다
명령은 의사명령과 실행명령으로 구분된다

(두 개의 패스를 사용하면) 기호를 정의하기 전에 사용할 수 있는 프로그램 작업이 용이하다

2단계 패스로 어셈블하는 과정을 거치게 된다 

매크로 
한 프로그램 내에서 동일한 코드가 반복될 경우 반복되는 코드를 한 번만 작성하여 특정이름으로 정의한 후 필요할 때마다 정의된 이름을 호출하여 사용하는 것

개방서브루틴이라고도 한다

매크로 정의 내에 또 다른 매크로를 정의할 수 있다 

사용자의 반복적인 코드 입력을 줄여준다 

매크로 프로세서 처리과정
1) 매크로 정의 인식 : 매크로의 시작을 알리는 'Macro' 명령을 인식한다
2) 매크로 정의 저장 : 매크로 테이블에 저장한다 
3) 매크로 호출 인식 : 매크로 호출 
4) 매크로 확장과 인수 치환 : 확장된 원시프로그램을 만든다

링커Linker 
목적프로그램 라이브러리 실행프로그램등을 연결해서 실행가능한 로드모듈을 만드는 시스템 소프트웨어로
Linkage Editor 라고도 한다 

링커에 의해 수행되는 작업을 Linking이라 한다 

로더Loader 
보조기억장치로부터 주기억장치에 적재하는 시스템 소프트웨어 
기능 4 가지 
할당 Allocation : 실행시키기 위해서 기억공간 확보
연결 Linking  
재배치 Relocation 
적재 Loading 

Compile And Go 로더 : 별도의 로더 없이 언어 번역 프로그램이 로더의 기능 
절대 로더Absolute Loader : 목적 프로그램을 기억장소에 적재시키는 기능
직접 연결 로더Direct Linking Loader : 로더의 기능 4가지를 모두 수행
동적 적재 로더Dynamic Loading Loader : 필요시 일부분만 적재

프로세스의 정의
실행중인 프로그램, PCB를 가진 프로그램, 실기억장치에 저장된 프로그램
비동기적 행위를 일으키는 주체
운영체제가 관리하는 최소 실행단위
프로세서 제어블록의 존재로서 명시되는 것
프로시저의 활동중인 것

PCB Process Control Block
프로세스에 대한 중요한 정보를 저장
task control block, job control block라고도 한다
프로세스의 수를 기본으로 하여 동적으로 할당한다
각 프로세스가 생성될 때 마다 고유의 PCB가 생성되고, 프로세스가 완료되면 PCB는 제거된다

PCB에 저장된 정보
프로세스의 현재 상태, 포인터, 프로세스 고유식별자, 스케줄링 및 프로세스의 우선순위, CPU레저스터 정보, 주기억장치 관리 정보, 입출력 상태 정보, 계정 정보

1)submit
2)hold
3)ready
4)run
5)wait, block
6)terminated 

스레드 : 스레드는 프로세서 내에서의 작업단위이고 여러 자원을 할당받아 실행하는 프로그램 단위이다
하나의 프로세스에 하나의의 스레드가 존재하면 단일 스레도
하나의 프로세스에 하나 이상의 스레드가 존재하면 다중스레드
경랑 프로세스라고도 한다 
자신만의 스택과 레지스터를 가지며 독립된 제어흐름을 갖는다
실행의 기본단위가 된다(word)
운영체제의 성능을 개선하려는 소프트웨어적 접근방법이다

스레드 사용의 장점 
하나의 프로세스를 여러개의 스레드로 생성하여 병행선을 증진시킨다
처리율을 향상시킨다
응답시간을 단축시킨다
기억 장소의 낭비가 줄어든다
통신이 향상된다
효율적으로 통신한다 

 




728x90

'컴퓨터과학' 카테고리의 다른 글

간단한 데이터 압축   (0) 2018.10.08
인공지능의 사기적인 능력  (0) 2018.08.27
빅데이터   (0) 2018.03.07
운영체제 (3)   (0) 2018.01.19
운영체제 (2)   (0) 2018.01.18