스케쥴링 

: 스케쥴링 과정에서 문맥교환 발생

문맥교환 :  이전 상태의 레지스터 내용을 보관, 다른 레지스터를 적재하는 과정, 적재 후 제어 권한을 ISR에 넘김

 

+ Aging기법

: 시스템에서 특정 프로세스의 우선순위가 낮아 무한정 기다리게되는 경우, 한번 양보하거나 기다린 시간에 비례하여 일정시간이 지나면 우선순위를 한 단꼐식 높여 가까운 시간 안에 자원을 할당받도록 하는 기법

 

 OS 성능평가 요인 

- 처리능력 Throughput

   : 단위 시간 내 얼마나 많은 양의 일을 처리할 수 있는가

- 사용가능도 Avaliability

   : 사용자가 요구 시 신속하게 지원해 줄 수 있는가

- 반환시간 Turn Around Time

   : 작업이 응답을 얻을 때까지 걸리는 시간

- 신뢰도 Reliability
   : 어느정도로 정확히 해결할 수 있는가

 

불안전상태 : 어떤 순서로 각 프로세스에 자원을 할당하면 결국 교착상태가 발생

       ↓

 교착상태 Dead Lock

 : 둘 이상 프로세스가 자원을 점유한 상태, 무한정 기다리는 상태

    > 발생 필요충분조건 

점유-대기
Hold and Wait
: 최소한 하나의 자원을 점유하면서 다른 프로세스에 할당되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 함
비선점
Non Preemption
: 다른 프로세스에 할당된 자원은 사용이끝날때까지 강제로 빼앗을 수 없어야함
환형대기
Circular
: 공유자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성, 자신에게 할당된 자원을 점유하면서 앞뒤에 있는 프로세스의 자원을 요구 해야함
상호배제
Mutual excrusion
: 한번에 한개의 프로세스만이 공유자원을 사용할 수 있어야 함

    > 제거방법 :    ↘수행 전 모든 자원 할당

    > 해결방법 

     - Avoidance 회피기법 : 은행가 알고리즘, 교착발생 가능성 배제 불가

     - Preventaion 예방기법 : 자원낭비 심함 / (종류) 점유-대기, 비선점, 상호배제, 환형대기 부정

     - Discovery 발견기법 : 교착상태 프로세스, 자원 발견 / 자원할당 그래프 사용

     - Recovery 회복기법 : 교착상태 프로세스 하나씩 종료 or 자원 선점 시킴

 

Monitor : 경계에서 상호배제 시행, 자료 추상화와 정보은폐를 기초로 함, 공유 데이터와 프로시저로 수겅

 

 운영체제 

: 하드웨어와 소프트웨어 리소스관리, 공통서비스 제공, 스케쥴링 담당, 자원관리, 입출력프로그램 제어 역할

: 사용자와 시스템간 인터페이스 기능제공, 데이터공유, 주변장치 관리, 시스템오류 처리, 응답/반환시간 단축

: 처리기(processor), 기억장치, 주변장치 등 HW자원 제어역할

: 모든 HW, SW의 기능을 사용가능하도록 제어해주는 SW

: 자원 효율적 관리, 오류로부터 시스템을 보호

 

 종류 

- Windows : 유지관리 비용 적음, GUI제공, 선점형 멀티태스킹 제공, OLE사용

- UNIX : 시분할 시스템 적합, 오픈소스, 계층적 트리 구조, 다중사용자와 다중작업 지원, 안정적이고 신뢰적 

       ( Linux : 비용적게 듬 /  Android : 미들웨어와 UI가 포함된 OS / Mac : GUI기반 )

    >구성요소 - 커널 : 주기억 장치에 상주, 프로세스와 하드웨어 간 인터페이스(내부적) 역할

                           : 입출력, 프로세스, 기억장치 관리  +) Bootstraping : 커널을 찾아 메모리에 적재하는 과정

                 - Shell : 시스템-사용자 간 인터페이스, Dos의 Command.com 기능수행, 명령어 해석기능

                           : 보조기억 장치에 상주

    >프로세스간 통신 :  호출시 커널기능 사용 (명령어 -시그널/ 쌍방향통신 -소켓/ 단방향통신 -파이프)

    >Utility : 응용프로그램 처리시 사용, Dos의 외부 명령어, 에디터, 컴파일러, 인터프리터, 디버거

    >Unix 파일시스템의 블록구조 

       - 부트 / 슈퍼 / 데이터 블록

       - i-node 블록: 소유자의 사용자 번호UID, 그룹번호GID, 파일에 대한 정보(크기, 타입, 생성/최종변경 시기, 링크 수)

 

 * Unix 명령어

fork 새 프로세스 생성  exec 새 프로세스 수행  cat  파일 내용 화면에
표시
dup  열린 파일의 디스크립터 복제
chmod  파일 접근 제한 / 허가 chown 소유자변경 ls  현 디렉토리의 파일
목록 확인 
du  해당 디렉토리 정보 확인

+) background 처리를 위해 명령어 끝에 붙이는 연산자 = &

 

 

 시스템 구성요소 

- Process : 입력 데이터 처리방법과 조건에 따라 처리함

- Feedback : 목적달성을 위해 반복적으로 처리함

- Control : 입력부터 출력까지 처리과정을 감독

 

 운용기법 

발달순서: 1>2>3>4

 

 제어프로그램  : 시스템 전체 작동상태를 감지, 스케쥴링, 데이터관리, 인터럽트 처리

    지시↓       종류 - 감시 /작업제어 /자료관리 프로그램

 처리프로그램  : 사용자요구 문제 해결

                   종류 - 서비스 /문제 /언어번역 프로그램

     ** 언어번역 과정 : 원시 프로그램-> 컴파일러/어셈블러-> 목적 프로그램-> 링커-> 로드모듈 ->로더 -> 실행

      로더 : 보조기억장치로부터 주 기억장치에 적재하는 소프트웨어

      로더의 기능 : Allocation할당(기억장치에 공간확보)/ link연결(부프로그램에 할당된 기억장소의 시작주소를 연결 ,대규모적합)

                         Relocation재할당(보조기억장치에 저장된 프로그램의 사용주소들을 기억장소의 실제주소로 재배치)

                         Loading적재

      로더의 종류 - 절대로더 : 간단함, 세그먼트주소를 할당 될 주 기억장치의 주소로 변환역할

                             " "    역할분담 : 기억장소 할당, 연결 - 프로그래머 / 재배치 - 어셈블러 / 적재 - 로더 

                       -  링커 : 실행가능한 로드모듈 생성, 연결기능만 수행하는 로더 (Linking역할)

                       - 동적 적재 로더 (Load - on -call)

                       - compile and go 로더 : 별도 로더없이 언어 번역 프로그램이 로더 기능까지 수행함

 


 가상기억장치 

: 보조기억장치 일부를 주기억장치처럼 사용하는 것

- 구현 방법 > 외부단편화 (세그멘테이션기법) : 페이지를 다양한 크기 논리적 단위로 나눔

                                                           : 기억공간절약, 세그먼트 고유이름/크기, 맵테이블 필요

               > 내부단편화 (페이징기법) : 페이지를 동일하게 나눔 ->페이지 프레임

                           - 페이지 크기 ↑- 공간절약, 무관한정보는 주기억장치에, 테이블 간단

                           - 페이지 크기 ↓- 단편화↓, 효율/입출력시간↑, 페이지 집합 효율적

   ※ Page Fault : 페이지가 주기억장치에 존재하지 않을 경우 발생하는 현상

               +

  참조가능한 프레임X = 페이지 교체 필요 / (프로세스 처리시간 < 페이지교체시간) 경우 Threasing 발생

 

 

  페이지 교체 알고리즘 

  전략 

반입- Fetch / 배치- placement / 교체 - replacement

 종류  

- 상주기간 ↑ - FIFO / ↓ - LIFO / 최근 참조 안한 - LFU / 오래 사용안한 - LRU == NUR

- 참조횟수↓, 호출Reference/ 변형Modified bit 가짐 - NUR 

- 주기억장치에 오래 상주 한 - SCR / 앞으로 오래 사용되지 않을 - Optimal

   

 Thread  : 다중프로그래밍 시스템에서 cpu받아 수행하는 프로그램 단위로 프로세스

            : Task 보다 작은 작업 단위  (Task 개당 여러 Thread로 나뉘어 수행 가능)

            : 독립적 제어흐름 가짐, 고유 레지스터/스택 사용함  

 

 프로세스  : 프로세서가 할당되는, 프로시저가 활동중인 상태의 프로그램, 비동기적 행위를 일으키는 주체 

              : CPU(프로세서)가 할당 받는 프로그램으로 정의 할 수 있음  

              : 실행중이며, PCB를 가진 프로그램, 전송 메시지=> 형식, 가변/고정 길이 메시지

                 PCB : 프로세스 정보(현재상태, 고유식별자PID,스케쥴링, 우선순위, cpu레지스터정보)저장한 저장소

                프로세서 : 기억장치 내 정보 균일하게 접근 못하고 특정부분을 집중적 참조함, OS가 관리하는 실행단위

                매크로 프로세서 기본수행작업 : 매크로 호출/정의 인식 , 정의저장 , 호출 확장/인수 치환

                프로세서 상호 연결 구조 > 하이퍼 큐브 :  CPU갯수 = 2^n (n= 연결점 갯수)

     - Locality 지역성 : 실행중인 프로세스가 주기억장치 참조시 일부 페이지만 집중적으로 참조하는 현상

          - 시간지역성 : 가까운 장래에도 참조될 가능성 ↑ ex) Loop,Stack, 집계, 서브루틴

          - 공간지역성 : 프로세스 실행시 일정위치의 페이지 집중적 접근 ex) 배열순회, 순차코드의 실행

     - Working Set : 프로세스가 일정시간동안 자주 참조하는 페이지의 집합

            = 참조페이지 중 중복 페이지만 제외한 페이지들 

> 프로세스 스케쥴러 : 준비상태의 프로세스에 실행 될 프로세스를 선정하여 CPU할당 함

> 프로세스 상태 : 시작, 준비, 실행, 대기, 종료 상태

WakeUp Dispatch Time run out Spooling
대기 → 준비상태 준비 → 실행상태 실행 → 준비상태 보류상태

+) Spooling : 입출력 장치 속도 보완법으로 디스크의 일부를 사용함

      ↔ 버퍼링 : 주 기억장치의 일부를 사용

 

 

 요구사항

> 정상적으로 운영되는데 필요한 제약조건 등을 나타내는 요구사항의 유형

 

 요구사항 개발 프로세스 

1. 도출

> 요구사항 도출 : 어떻게 수집할 것인지 식별하고 이해하는 과정

                        - 주요기법 : 인터뷰, 설문, 브레인스토밍, 프로토타이핑, Usecase

> 요구사항 추출 - 계획 시 정의한 범위에서 추출

> 요구사항 이해 - 실제적인 개발 첫 단계

 

2. 분석

> 요구사항 분석 : 명확하지 않거나 모호하기에 이를 걸러내기 위한 과정/ 비용과 일정에 대한 제약설정과 타당성 조사를 한다.

                         - soft tech사에서 개발한 분석자동화도구 SADT

> 분석 기법 - 요구사항 분류 

                  - 개념 모델링 : 쉽게 이해할 수 있도록 단순화하여 개념적으로 표현 (종류- usecase, DFD, 상태/객체/데이터 모델)

              - 요구사항 할당 : 구성요소를 식별

              - 요구사항 협상 : 문서상 요구사항 상충 여부 확인

              - 정형분석 : 구문과 의미를 갖는 정형화된 언어를 이용해 수학적 기호로 표현후 분석

> 요구사항 검증 : 요구충족여부 점검, 실제요구 반영 여부, 

> 요구사항 관리도구: 비용편익 분석, 변경추척, 변경에 따른 영향 평가

> 도메인분석 (정보수집, 배경분석) -> 개념모델링 (단순화)

> 기술구조설계 : 정형분석/ 정형화된 언어로, 수학적기호로 작성

 

3. 명세

- 스템 정의서, SW요구사항 명세작성, SW 설계 명세 작성

- 요구사항 명세서

    >명세기법 - 정형 : 수학적/ 모델링 기법, Z / VDM 기법사용, 간결함, 명세와 구현의 일치, 이해도가 낮음

                   - 비정형 : 상태 ,기능, 객체 중심으로 작성, 자연어 기반, 모호함

 

4. 확인

> 확인기법 - 요구사항 검토 : 문서화된 요구사항 검토

                 - 프로토타이핑 : 초기 요구사항으로 프로토타입 생성 후 변경되는 요구사항 반영하여 지속적으로 재작성하는 과정

                     (Prototype : 상품이나 서비스가 출시되기 전에 개발대상 시스템 또는 그 일부분을 개략적으로 만든 원형) 

              - 모델검증 : 요구사항 분석단계에서 개발된 모델이 요구사항을 충족시키는지 검증

              - 인수검사 : 사용자의 환경에서 요구사항들이 모두 충족되는지 사용자 입장에서 확인하는 과정

> 검토 - 동료검토 : 2~3명 이해 관계자들 모여 설명 들으며 결함 발견

          - 워크스루 : 동료들에게 명세 배포하여 검토 후 짧은 회의를 통해 초기 오류 발견이 목표

          - 인스팩션 : 명세 작성자 외 전문가들 모여 명세 결함 발견 

 현행시스템파악 

: 하위시스템 구성요소, 제공기능, 연계요소/ 적용기술요소/ Sw/ HD/ 네트워크 구성요소 파악

> 목적 : 시스템 개발범위와 이행방향 설정에 도움

> 구성요소 : 아키텍처, SW, HW, 네트워크 구성도

> 절차

사전 준비 사항

  1. https://developers.kakao.com/ 사이트에서 키를 발급하고 JavaScript 키를 복사한 후
  2. https://apis.map.kakao.com/ 에 접속하여 필요한 api를 찾는다.
  3. 무료 도메인 사이트 만든 후 filezilla 다운 (dothome에서 무료)
  4. 서버관리자로 꼭 index.html 파일을 포함하여 업로드 

지도 + 마커표시

지도에 표시하고 싶은 장소의 위도,경도를 찾아 배열로 저장

(구글 지도에 접속 후 우클시 좌표 뜸)

 

사이트 접속시 위치들이 한번에 보이도록 중심좌표는 지도에서 가운데를 찾아 center에 적어 줌


지도 레벨 조절 버튼

html, css                 /                js

 

변경 전 / 후

 


튤팁

마우스를 올려 놓으면 장소명 표시

 

이렇게 여러 api를 조합하다 보면 코드 규칙성도 찾을 수 있어서

자유롭게 쓸 수 있을 것 같아요


 

filezilla에 파일 업로드시 index 파일이 없다면

오류가 발생하기 때문에

 

꼭 포함해서 업로드!

 

코드 수정 후 반영하고 싶다면 우클 후 업로드 or 파일 선택 후 엔터

+ Recent posts