Computer Science 156

운영체제 정리 ::

운영체제에서 기억하고 싶은 내용 운영체제란?? 운영체제는 응용 소프트웨어와 하드웨어 사이의 매개체 역할을 한다 대표적인 시스템 소프트웨어다 컴퓨터 시스템의 자원을 관리한다 컴퓨터 프로그램의 서비스를 제공하는 프로그램들의 모음이다 운영체제 역할 컴퓨터 시스템 자원 관리와 사용자 지원을 한다 1. 컴퓨터 시스템 자원 관리 역할 자원이란 하드웨어 자원, 소프트웨어 자원 그리고 데이터가 있다 저장장장치에서 데이터를 읽어 오는 역할을 한다 키보드, 마우스 제어 역할을 한다 동시에 여러 프로그램 실행시 CPU와 메모리를 효율적으로 관리한다 => 컴퓨터 시스템을 효율적으로 운영하려는 목적이다 2. 사용자 지원의 역할 사용자가 내린 명령을 해석해서 실행한다(CLI) 사용자와 하드웨어 사이의 매개체가 된다 => 사용자에..

운영체제 12강 :: 저장장치, 디스크 스케줄링

운영체제에서 기억하고 싶은 내용 저장장치의 종류 순차 접근 저장장치, 직접 접근 저장장치 순차접근 저장장치 데이터를 순차적으로 읽고 쓰는 저장 장치 테이프로 되어 있어 접근 시간이 오래 걸린다 대용량 데이터 백업용으로 사용 직접 접근 저장장치 저장 위치를 직접 찾아서 데이터를 읽고 쓰는 저장장치 '임의 접근 저장장치'라고도 한다 자기 디스크, 광디스크, SSD에 사용된다 자기 디스크 디스크 표면에 자성의 성질을 변화시켜서 데이터를 읽거나 쓴다 이를 위해 트랙, 헤더, 암, 고정장치 등 부품이 있다 SSD 전력 공급이 없어도 데이터가 안지워지는 메모리 이용한다 자기 디스크보다 훨씬 속도가 빠르고, 모터를 돌리지 않기에 전력 소모도 적다 비싸지, 가격이 쎄고 수명이 짧다 노트북 같은 곳에는 좋을 듯 크기도 ..

운영체제 11강 :: 장치, 입출력 처리, 입출력 관리

운영체제에서 기억하고 싶은 내용 장치 CPU, 메모리: 프로세스에 필요한 장치 나머지 장치: 전용장치, 공용장치, 가상장치 1. 전용 장치 한 번에 하나의 프로세스에만 할당 프린터 같은 장치는 한 번에 하나의 프로세스만 있어야겠지 단점 대기시간이 길어질 수 있다 2. 공용 장치 여러 프로세스 동시 할당 가능 하드 디스크 같은 것이 직접 접근 저장 장치 스케줄링 기법이 필요하다 3. 가상 장치 전용 장치을 공용 장치처럼 보이게 한다 방법 디스크 같은 공용 장치를 활용한다 공용 장치가 중간에서 교통 정리 해주는 느낌이네 장치의 구성 논리적 구성 장치 제어기 장치를 직접적으로 다루는 전자 장치 운영체제가 보내는 출력을 장치에 맞게 변형 장치 드라이버 입출력 요청을 해당 장치에 맞도록 변환 보통 장치 제조사에서..

파이썬 11강 :: 모듈

파이썬에서 기억하고 싶은 내용 모듈이란 함수, 상수, 클래스를 모아 놓은 집합체 모듈의 등록 네임스페이스에 추가해주는 역할 모듈 전체 가져오는 구문형식) # 1 import 모듈이름 # 2 import 모듈이름 as 별칭 모듈 부분 가져오는 구문형식) # 1 from 모듈이름 import 메소드 # 2 from 모듈이름 import photos * 모듈 등록 확인 dir 함수: 네임스페이스에 등록되어 있는 모든 이름들 리스트로 반환 네임스페이스 지역 < 전역 < 빌트인 모듈의 제거 네임스페이스 내 모듈의 멤버 식별자 제거 del 모듈이름

운영체제 10강 :: 페이지 교체 알고리즘, 프로세스 집합

운영체제에서 기억하고 싶은 내용 페이지 교체 알고리즘 페이징 기법이라고 부르는듯 하다 새로 페이지를 적재해야 하는데, 모든 페이지 프레임이 사용되고 있네? 그럼 페이지 프레임에서 교체할 대상을 결정해야 하지 그 때 사용되는 기법이다 FIFO, LRU, LFU, 2차 기회 페이지 교체 등이 있다 최적화의 원칙 교체 대상 선택 방법으로 완벽한 방법이 있다 가장 오랫동안 사용되지 않을 페이지를 선택하는 방법이다 하지만 이론적으론 완벽하지만, 미래를 예측할 수 없어 실현이 불가능하다고 한다 교체 제외 페이지 교체를 하지 말아야 페이지들도 있다 어차피 필요한 영역은 교체하지 않는게 효율적일 것 페이징을 위한 커널 코드 영역 보조기억장치 드라이버 영역 입출력장치를 위한 데이터 버퍼 영역 ... 등 FIFO(Firs..

파이썬 10강 :: 객체지향, 클래스, 인스턴스

파이썬에서 기억하고 싶은 내용 객체지향이다! 제대로 알고 싶었다 객체지향형의 시작점 공통적인 것은 미리 만들어 놓고, 서로 다른 점만 따로 구현하자 이렇게 하면 대형 프로그램을 훨씬 더 효과적으로 개발할 수 있지 않을까? 객체지향의 개념 객체와 객체의 상호작용으로 프로그램을 구성하는 프로그래밍 패러다임이라고 한다 그럼 객체와 객체의 상호작용이 어떻게 되는지 알아봐야겠네 프로그램을 유연하고 변경이 쉽게 만들어서 대규모 소프트웨어 개발에 사용한다 그럼 객체 지향의 특징은? 추상화 공통 속성이나 기능을 도출하는 것이 추상화인듯 객체지향의 시작점에서 말했던 공통적인 것! 캡슐화 추상화된 것을 묶어준다 데이터 구조와 데이터 연산을 결합하는 것 클래스 구조로 보이네 상속 만들어놓은 공통적인 것을 상속받는 것 다형성..

파이썬 9강 :: 함수

파이썬에서 기억하고 싶은 내용 함수 특정 작업을 수행하는 명령문의 집합 함수 정의 예시) def 함수이름(매개변수): 명령 역순으로 출력하는 함수 예시) def reverse_number(num) : while num != 0 : digit = num % 10 num = num // 10 print(digit, end="") number = int(input()) reverse_number(number) 반환값 있는 함수 def 함수이름(매개변수): 명령 블록 return 반환값 반환값 여러 개인 경우 def 함수이름(매개변수): 명령 블록 return 반환값1, 반환값2 ... 그럼 이렇게 여러 개의 반환값을 받을 수 있다. a, b = 함수이름(매개변수) format 함수 실수를 format 이용해..

운영체제 9강 :: 가상메모리, 블록사상시스템, 블록구성방식

운영체제에서 기억하고 싶은 내용 가상 메모리 가상 메모리를 이용하면 메모리 크기보다 더 큰 기억공간이 필요한 프로세스도 실행할 수 있다 현재 필요한 부분만 실제 메모리에 적재해서 사용할 때 가상 메모리를 이용할 수 있다 사상(Mapping) 가상주소를 실주소로 변환하는 과정 동적 주소변환(DAT): 프로세스가 실행되는 동안 사상되는 것 인위의 연속성이란 말은 가상 주소 공간에서 연속적인 주소가 실주소 공간에서 연속일 필요가 없다는 의미 주소변환 사상표 가상 메모리에서 실제 메모리 주소 변환을 위해 정보가 담긴 표를 주소변환 사상표라고 한다 바이트나 워드 단위로 주소를 변환하게 되면 정보량이 너무 많아서 비효율적이다 그럼 이것들을 조금 묶어서 사상을 하는 것이 '블록 사상 시스템'이다 블록 사상 시스템 말..

운영체제 8강 :: 메모리관리자, 메모리분할, 메모리배치

운영체제에서 기억하고 싶은 내용 메모리 관리자가 하는 일 메모리 호출 언제 새로운 프로세스 메모리에 둘까 메모리 배치 메모리 어디에 둘까 메모리 교체 메모리 꽉 찼을 때 어떤 프로세스 제거할까 그 외 고정/동적 분할, 고정 유동 적재 영역 등 단일 프로그램 환경 하나의 프로세스가 메모리를 전용으로 사용하는거 연속된 블록으로 메모리에 할당 문제점 메모리 용량을 초과하는 프로세스 실행 못한다 지속적이지 않은 프로세스도 적재되어 있어 메모리 낭비 심하다 주변장치 등 자원 낭비 심하다 다중 프로그래밍 환경 우리가 사용하는 거 여러 개의 프로세스가 메모리에 동시에 적재 CPU 연산과 입출력 동시에 사용 => CPU 이용도와 시스템 처리량 증가 메모리 분할의 고민이 생겼지 메모리 고정 분할 메모리를 여러 개의 고정..

파이썬 7강 :: 리스트, 반복 구조

파이썬에서 기억하고 싶은 내용 리스트 원소 여러 개를 저장할 수 있는 것 배열(Array in JavaScript) 리스트 예시) hei_list = [1, 4, 14, 26, 31] body = [181, 78, "red", "blue"] 리스트 생성 자동화 range(a, b, k) a부터 b보다 작은 값까지 k씩 증가시켜 시퀀스 생성 a 생략시 기본값: 0 k 생략시 기본값: 1 range 함수 사용 예시) rad_list = range(10, 40, 10) # [10, 20, 30] 반복 구조 반복은 종료가 되는지 안되는지 잘 확인해야 한다 while 사용 예시) msg = "I can handle Python" count = 1 while count 10s >: 오른쪽 정렬(꺽쇠 방향으로 정렬)..

728x90