DEVELOP
[운영체제] 6. 상호작용 프로세스와 동기화
LECTURE/[2021-1] 운영체제 2021. 6. 17. 04:46

본 게시물은 운영체제 과목의 강의영상과 강의자료를 바탕으로 작성한 학습용 게시물입니다. 공유변수 활용 → 간섭 문제 발생 race condition : 공유 변수 동시 접근 시 발생하는 문제 원소적 실행, 동기화, 임계구역 원소적 실행 : 공유변수를 통해 상호작용하는 프로세스 혹은 쓰레드 간에 문맥교환이 언제 일어나도 간섭이 없는 실행이 보장되는 것 - 공유변수를 사용하는 코드 영역에 임계구역을 설정 임계구역 설정 : 원소적 실행을 위해 각 프로세스 혹은 쓰레드가 공유변수, 자료구조, 파일 등을 배타적으로 읽고 쓸 수 있도록 설정한 코드 세그먼트 → mutex가 기본 동기화 : 코드 상에 임계구역을 설정해 진입/진출을 순서화 하는 것 상호작용 프로세스와 결정성 # 상호작용 프로세스 컴퓨터 시스템 자체가 ..

[운영체제] 5. 실시간 스케쥴링
LECTURE/[2021-1] 운영체제 2021. 6. 17. 04:19

본 게시물은 운영체제 과목의 강의영상과 강의자료를 바탕으로 작성한 학습용 게시물입니다. 실시간 시스템 연성 실시간 시스템 - 실시간이 아닌 프로세스들에 비해 우선권을 가진다는 것만 보장 경성 실시간 시스템 - 테스크는 반드시 마감시간까지 서비스 받아야함 사건지연 시간 : 사건이 발생해서 그에 맞는 서비스가 수행될때까지의 시간 # 지연 시간 최소화 인터럽트 지연시간 : CPU에 인터럽트가 발생한 시점부터 해당 ISR이 시작하기까지의 시간 디스패치 지연시간 : 하나의 프로세스를 중지시키고 다른 프로세스를 시작하게 하는데 걸리는 시간 실시간 태스크 작업 : 테스크의 단위작업 실시간 테스크 : 작업의 연속 - 비주기적 / 주기적 주기적 테스크 (p,t) - 주기 p - 마감시간 d - 수행시간 t - 이용률 u..

[운영체제] 4. 프로세스 스케쥴링
LECTURE/[2021-1] 운영체제 2021. 6. 17. 03:38

본 게시물은 운영체제 과목의 강의영상과 강의자료를 바탕으로 작성한 학습용 게시물입니다. 스케쥴링 개념 # 장기, 중기, 단기 스케쥴러 장기 스케쥴러 (작업 스케쥴러) - 오프라인과 연계되는 일괄처리 큐를 별도로 유지하는 경우에 필요 - 어떤 프로그램을 하드디스크로부터 메모리로 적재할지를 결정하는것 단기 스케쥴러 (또는 CPU 스케쥴러) - 메모리 내의 준비 상태에 있는 작업 중 실행할 프로세스를 선택하여 CPU를 할당 - 일반적으로 스케쥴러라 함은 단기 스케쥴러를 말함 중기 스케쥴러 - 가상메모리 체제에서 너무 많은 프로세스가 적재되면 하드디스크 입출력이 과다해져서 시스템이 거의 멈추는 형상이 발생 - 스와핑 : 일부 프로세스를 메모리에서 디스크로 내보내고, 시간이 흘러 메모리의 여유가 생기면 다시 적재..

article thumbnail
[운영체제] 3. 프로세스
LECTURE/[2021-1] 운영체제 2021. 6. 15. 04:40

본 게시물은 운영체제 과목의 강의영상과 강의자료를 바탕으로 작성한 학습용 게시물입니다. 프로세스 정의 # 프로세스 : 실행 중인 프로그램 시스템 콜을 통해 자원을 요구하는 주체 멀티 프로세싱 혹은 멀티 태스킹 사용자 프로세스 - 응용 프로그램이 실행되는 것 시스템 프로세스 - 운영체제가 필요에 의해 생성 문맥과 문맥교환 # 문맥 (Context) : 프로세스의 실행 중단 시 보존되고, 속개 시 다시 원상 복구되어야하는 프로세스의 모든 실행 정보 사용자 수준 문맥 (User-level context) - 메인 메모리 현재 상태 - 텍스트 영역 : 프로그램 코드 부분 - 자료 영역 : 프로그램 광역변수 부분 - 스택 영역 : 프로그램 실행시간 스택 부분 커널 수준 문맥 (Kernel-level context..

article thumbnail
[운영체제] 2. 컴퓨터구조와 OS 연계
LECTURE/[2021-1] 운영체제 2021. 6. 15. 00:51

본 게시물은 운영체제 과목의 강의영상과 강의자료를 바탕으로 작성한 학습용 게시물입니다. 커널과 시스템 호출 # 커널 vs. 시스템 프로그램 커널 - 운영체제의 핵심부분, 메모리에 상주하는 부분 - 주로 자원 관리 및 자원 사용에 관한 서비스 - 시스템 호출을 제공 시스템 프로그램 - 커널 이외의 프로그램 - 운영체제 개발자가 기본적으로 제공하는 라이브러리나 운영체제 사용 도구 - ex) 편집기, 컴파일러, 디버거, 쉘, 쉘 명령어 등 # 커널 기능적 측면의 구성요소 - 부팅 단계의 기능 - 하드웨어 진단 및 초기화 - 디스크 상의 커널 프로그램을 메모리로 적재 기능적 측면의 구성요소 - 부팅 후 기능 - 프로세스 경영 - 중앙처리장치 경영 - 주기억 장치 경영 - 파일 시스템과 보조 기억장치 경영 - 시..

article thumbnail
[운영체제] 1. 운영체제의 태동과 발전
LECTURE/[2021-1] 운영체제 2021. 6. 14. 18:31

본 게시물은 운영체제 과목의 강의영상과 강의자료를 바탕으로 작성한 학습용 게시물입니다. 운영체제의 필요성과 목적 - 한정된 자원과 사용자 사이의 경쟁을 조율하기 위한 운영자의 정책이 필요하다. # 운영체제의 목적 사용자 관점에서의 편의성 추구 자원 할당자로서 자원 활용의 효율성 추구 다양한 입출력 장치의 운영 및 제어의 일관성 추구 초기시스템 기계어 프로그램을 주로 카드 천공기를 이용해 펀치카드에 기록하거나 자기테이프에 기록 프로그래머가 Sign-Up Sheet에 원하는 시간을 표시(예약) 프로그래머가 콘소리나 스위치를 이용해 모든 작업 수행 - 펀치카드 박스나 카드덱의 내용을 카드리더기에 적재 - 콘솔을 통해 프로그램 수행/디버깅 - 카드덱 형태의 라이브러리 사용 활용도 비효율 (남는시간 발생) / 준..

article thumbnail
[컴퓨터공학개론] 8. 데이터 추상화

본 게시물은 컴퓨터공학개론 과목의 강의영상과 강의자료를 바탕으로 작성한 학습용 게시물입니다. 기본 데이터 구조 (p.410) 배열 (Array, 동질성 배열) 집합체 (Aggregates, 이질성 배열 ) 리스트 - 스택 / 큐 트리 # 배열 배열 : 그 안의 항목들이 모두 동일한 타입인 데이터 블록 2차원 배열 : 행들과 열들로 이루어짐 인덱스 : 각 원소의 위치를 표시 # 집합체 집합체 : 타입과 크기가 다를 수도있는 데이터 항목들의 블록 각 항목은 필드라고 불린다. 필드에 대한 접근은 이름을 통해 이루어진다. #리스트 리스트 : 항목을 순차적으로 배열하는 데이터 집합 헤드 : 리스트의 시작 테일 : 리스트의 끝 # 스택 스택 : 항목들에 대한 제거와 삽입이 헤드에서만 이루어지는 리스트 LIFO(La..

article thumbnail
[컴퓨터공학개론] 7. 소프트웨어 공학

본 게시물은 컴퓨터공학개론 과목의 강의영상과 강의자료를 바탕으로 작성한 학습용 게시물입니다. 소프트웨어 공학 개관 (p.364) # 소프트웨어 공학 대규모의 복잡한 소프프웨어 시스템의 개발에 지침이 되는 원리들을 모색하는 컴퓨터과학의 한 분야 타 공학 분야와의 차이점 - 사전 제작 부품의 결여 - 측도의 결여 실용 연구자 : 바로 응용될 수 있는 기법의 개발 이론 연구자 : 보다 안정된 기법들을 구축하는 데 토대가 될 기초원리와 이론들을 모색 전문가 단체 : ACM, IEEE - 전문가 윤리 강경 - 표준 # CASE(Computer Aided Software Enginerriong) 도구 프로젝트 계획 ㅣ MS project, Teams, Trello Asana 프로젝트 관리 ㅣ MS project, ..

article thumbnail
[컴퓨터공학개론] 6. 프로그래밍 언어 (Programming Languages)

본 게시물은 컴퓨터공학개론 과목의 강의영상과 강의자료를 바탕으로 작성한 학습용 게시물입니다. 역사적 고찰 (p.294) 초창기 프로그래밍 언어 : 기계어, 어셈블리 언어 기계 독립적 언어 (human friendly) 고급 프로그래밍 언어들은 더욱 강력한 추상화 요소들 포함 # 1세대 언어 : 기계어 숫자로 표현된 명령코드와 피연산자들 ㅣVole # 2세대 언어 : 어셈블리 언어 기계 명령을 표현하기 위한 기호 체계 명령 코드는 기호식 이름으로 표현 기계 명령과 어셈블리 명령 사이에는 일대일 대응 관계가 존재 어셈블러에 의해 기계어로 변환됨 # 3세대 언어 고급 프리미티브를 사용 ( 슈도코드와 유사 ) 대체로 기계 독립적 각 프리미티브는 여러 개의 기계어 명령에 대응 컴파일러에 의해 기계어로 변환됨 ex..

[컴퓨터공학개론] 5. 알고리즘 (Algorithms)

본 게시물은 컴퓨터공학개론 과목의 강의영상과 강의자료를 바탕으로 작성한 학습용 게시물입니다. 알고리즘의 개념 # 알고리즘 : 모호하지 않고 실행 가능한 단계들의 집합이며, 단계들에는 순서가 정해져있고 종료되는 프로세스를 정의 - 프로그램 : 알고리즘에 대한 표현 - 프로세스 : 알고리즘 실행 활동 알고리즘의 표현 (Algorithm Representation) # 프리미티브 : 알고리즘 표현에 사용될 잘 정의된 기초 요소 - 자체의 semantics와 syntax을 갖음 - 프리미티브 조합 규칙의 집합이 프로그래밍 언어를 구성 # 의사코드 : 알고리즘 개발 과정에서 생각들을 보다 자유로운 형식으로 표현할 수 있는 표기 체계 - 배정문, 조건, 반복문, 함수정의 - 들여쓰기 알고리즘의 발견 (Alogori..