프로그래밍/CS67 운영체제(6/11) - Process Synchronization 1,2,3,4 Race Condition - 여러 프로세스들이 동시에 공유 데이터를 접근하는 상황 - 데이터의 최종 연산 결과는 마지막에 그 데이터를 다룬 프로세스에 따라 달라짐 프로그램적 해결법의 충족 조건 - Mutual Exclusion: 상호 배제 - Progress: critical section이 비어있고, 들어가고 싶은 프로세스가 있으면 들여보냄 - Bounded Waiting: 유한 대기 Semaphores 앞의 방식들을 추상화시킴 - counting semaphore: 도메인이 0 이상인 임의의 정수값 - binary semaphore: 0 또는 1 값만 가질 수 있는 semaphore - deadlock: 둘 이상의 프로세스가 서로 상대방에 의해 충족될 수 있는 이벤트를 무한히 기다리는 현상 Boun.. 2023. 1. 30. 운영체제(5/11) - CPU Scheduling 1, 2 스케쥴링 알고리즘 - FCFS(first-come-first-served): 선점 후 다쓰고 cpu를 반납함 - 예시: 일반적인 화장실 대기줄 단점 예시) 중국집 먼저 도착한 고객이 5시간 걸리는 음식을 주문한 상황 뒤에 짜장면 먹으러 온 손님(빨리 걸리는 음식)은 계속 기다려야 함 - SJF(shortest-job-first): 짧게 거리는 작업에 먼저 cpu를 할당함 - 장점: 전체 Q가 짧아짐 - non-preemptive SJF와 preemptive SJF(SJF중에서도 더 짧은 프로세스가 나오면 거기에 할당함)로 나뉨 - preemptive SJF가 더 옵티멀함 - 문제점: 긴 프로세스는 계속 cpu를 사용못할 수 있음(starvation), 사용하는 cpu를 계산하지 못함(과거의 데이터로 추정.. 2023. 1. 29. 운영체제(4/11) - Process Management 1,2 프로세스 생성 - 부모 프로세스가 자식 프로세스 생성(자원을 공유) - 트리 형성 - 주소 공간: 자식은 부모의 공간을 복사함 프로세스 종료 - 프로세스가 마지막 명령을 수행한 후 운영체제에게 이를 알려줌(exit) - 부모 프로세스가 자식의 수행을 종료시킴(abort) -> 자식이 할당 자원의 한계치를 넘어섬(마치 카드 값을 너무 쓰는 자식을 버리는 것과 비슷) -> 자식에게 할당된 테스크가 더이상 필요하지 않음(일시킬게 없어서 버림) -> 부모가 종료하는 경우(운영체제에서는 자식이 죽고 부모가 죽어야 하므로) fork() 시스템 콜 - 나라는 사람을 복제하는 느낌 - 자식은 부모 코드에서 fork()뒤에서 부터 같게 작동함(처음부터가 아님) exec() 시스템 콜 - 완전히 새로운 자식 프로세스, 새.. 2023. 1. 28. 운영체제(3/11)-Process 1,2,3 프로세스의 개념 문맥교환 cpu를 한 프로세스에서 다른 프로세스로 넘겨주는 과정 프로세스 큐 Job Queue- 메모리 할당을 대기 중인 프로세스들로 구성 Ready Queue- cpu할당을 대기 중인 프로세스들로 구성 Device Queue- 입출력 장치 할당을 대기 중인 프로세스들로 구성 스케줄러 쓰레드(Thread) 쓰레드 구성(thread) Program counter Register set Stack space 쓰레드가 동료 쓰레드와 공유하는 부분 Code section Data section Os resources 쓰레드의 장점 응답이 빠름 높은 처리율, 성능 향상 병렬성을 높일 수 있음 2023. 1. 27. 운영체제(2/11) - System Structure & Program Execution 1,2 컴퓨터 시스템 구조 현대의 운영체제는 인터럽트에 의해 구동됨 용어정리 Mode bit: 보호장치 타이머: 정해진 시간이 지난 뒤 인터럽트를 발생시킴 인터럽트: 인터럽트 당한 시점의 레지스터와 프로그램카운터를 저장한 후 CPU의 제어를 인터럽트 처리 루틴에 넘김 인터럽트 백터: 해당 인터럽트 처리 주소 동기식 입출력 : I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어감 비동기식 입출력: I/O가 시작된 후 입추력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어감 DMA: cpu제외 메모리에 접근할 수 있도록 한 것 저장장치 계층구조 위로갈수록 용량이 작고 속도가 빠름, 가격이 비쌈 Primary: 휘발성 Secondary: 비휘발성 커널 주소 공간의 내용 2023. 1. 26. 운영체제(1/11) - Introduction to Operating Systems 운영체제의 정의 운영체제: 컴퓨터 시스템의 자원을 효율적으로 관리 효율성, 형평성 고려 최근의 운영체제는 대부분 다중작업, 다중사용자, 시분할 처리방식(일정한 시간단위로 분할하여 사용자로 하여금 실시간으로 처리되는 듯하게 느낄 수 있는 시스템)지원 운영체제의 구조 운영체제 잘하는 법 본인이 운영체제라고 생각하며 어떻게 각 요소(Disk, Memory 등)들의 요구를 잘 맞춰주며 운영할지 고민하기 2023. 1. 25. 앞으로 읽을 개발 책 정리(CS위주)+계속 update예정 컴퓨터 공학 6대 과목 자료구조 알고리즘 컴퓨터 구조 운영체제 네트워크 데이터베이스 1. 자료구조 2. 알고리즘 미래를 바꾼 아홉 가지 알고리즘 우리가 컴퓨터를 사용할 때, 컴퓨터 안에서는 무슨 일이 일어나고 있을까? 존 맥코믹은 이를 가능케 한 아홉 가지 위대한 알고리즘 이면의 기본적 아이디어를 다양한 비유와 예를 활용해 쉽고 www.aladin.co.kr 3. 컴퓨터 구조 클린 아키텍처 - YES24 살아있는 전설이 들려주는 실용적인 소프트웨어 아키텍처 원칙『클린 코드』와 『클린 코더』의 저자이자 전설적인 소프트웨어 장인인 로버트 C. 마틴은 이 책 『클린 아키텍처』에서 이러한 www.yes24.com 최신 컴퓨터 구조 - YES24 그림으로 이해하는 컴퓨터 구조의 기본과 응용『최신 컴퓨터 구조』는 .. 2023. 1. 13. 어느 개발자의 프로그래밍 책 독서... 교보문고에서 프로그래밍 책을 읽었다 CS지식 책과 알고리즘 책, 자바스크립트 책을 너무 읽고 싶었고 열심히 읽었다! 프로그래머의 뇌: 프로그래밍이 왜 어려운 지에 대한 저자의 설명이 있고, 심리학적인 이유 등등이 있었다 그런데 컴퓨터 프로그래밍 지식적인 측면에서 갈증이 있던 나에게는 쏘쏘 한 책이었다(개인적으로 비추) 면접을 위한 CS전공지식 노트: 디자인패턴을 공부해야한다는 말을 많이 들어서, 관심이 있었는데 처음부터 나온다 그리고 전반적으로 여러 가지 개념을 쉬우면서 꼭 알아야 하는 부분만 알려준다는 느낌을 받았다 (내가 공부를 많이 한 뒤 보면 아 정말 핵심만 담았구나라고 느낄 것 같다) 정말 기본 cs지식을 갖춘 사람이라면 이 책 달달 외우고 면접 들어가면 될 것 같다 한 권으로 읽는 컴퓨터 구조.. 2022. 12. 30. 개발자 기술면접 질문 모음(프론트엔드, 백엔드) 프론트엔드 질문 JavaScript 클로저에 대해서 설명하세요. 호이스팅과 Temporal Dead Zone이 어떻게 연관되어있는지 설명하세요. callback, promise, async/await의 특징과 차이점에 대해서 설명하세요. React React 에서 virtual DOM이 무엇인가요? virtual DOM이 좋은 이유에 대해서 설명하세요. Props Drilling 이란 무엇인가요? JSX가 무엇인가요? state를 직접 변경하지 않고 setState를 사용하는 이유에 대해서 설명하세요. React에 있는 라이프사이클과 각 라이프사이클의 역할을 설명하세요. CSS id와 class 셀렉터의 차이점에 대해 설명하세요. CSS에서 px, em, rem, vh, vw 단위들의 차이점은 무엇인가요.. 2022. 10. 18. 이전 1 2 3 4 5 6 7 8 다음